Windows/Linux 系統中獲取端口被哪個應用程序佔用
管理服務程序的時候,可能會查詢某個端口當前被哪個進程佔用。不僅能找出有問題的進程將其處理掉,也可以用來輔助檢查某個程序是否開啓了服務並在監聽端口。
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