Windows/Linux 系統中獲取埠被哪個應用程式佔用
- 2020 年 3 月 13 日
- 筆記
管理服務程式的時候,可能會查詢某個埠當前被哪個進程佔用。不僅能找出有問題的進程將其處理掉,也可以用來輔助檢查某個程式是否開啟了服務並在監聽埠。
Windows 系統
Windows 系統上可以使用 PowerShell 命令來查詢佔用某個埠的程式。
比如,我們需要查詢 5000 埠被佔用的進程是誰,可以在 PowerShell 中輸入命令:
Get-Process -Id (Get-NetTCPConnection -LocalPort 5000).OwningProcess
Linux 系統
在終端中輸入命令 lsof
可以查詢佔用某個埠的進程。
lsof -i:埠號
比如,我們需要查詢 5000 埠被佔用的進程是誰,可以在中斷中輸入命令:
walterlv@localhost:~# lsof -i:5000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dotnet_serve 731 root 3u IPv6 12890 0t0 TCP *:5000
或者使用 netstat 查詢。
netstat -tunpl | grep 埠號
舉例:
walterlv@localhost:~# netstat -tunpl | grep 35412 tcp6 0 0 :::5000 :::* 731/dotnet_serve
本文會經常更新,請閱讀原文: https://blog.walterlv.com/post/get-port-owning-process.html ,以避免陳舊錯誤知識的誤導,同時有更好的閱讀體驗。
本作品採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。歡迎轉載、使用、重新發布,但務必保留文章署名 呂毅 (包含鏈接: https://blog.walterlv.com ),不得用於商業目的,基於本文修改後的作品務必以相同的許可發布。如有任何疑問,請 與我聯繫 ([email protected]) 。