在linux中可以使用lsof和netstat命令來檢視埠佔用情況,其中lsof語法為「lsof -i:埠號」,netstat語法為「netstat -tunlp | grep 埠號」。
推薦:《》
Linux 檢視埠佔用情況
Linux 檢視埠佔用情況可以使用 lsof 和 netstat 命令。
lsof
lsof(list open files)是一個列出當前系統開啟檔案的工具。
lsof 檢視埠佔用語法格式:
lsof -i:埠號
範例
檢視伺服器 8000 埠的佔用情況:
# lsof -i:8000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nodejs 26993 root 10u IPv4 37999514 0t0 TCP *:8000 (LISTEN)
可以看到 8000 埠已經被輕 nodejs 服務佔用。
lsof -i 需要 root 使用者的許可權來執行,如下圖:
更多 lsof 的命令如下:
lsof -i:8080:檢視8080埠佔用 lsof abc.txt:顯示開啟檔案abc.txt的程序 lsof -c abc:顯示abc程序現在開啟的檔案 lsof -c -p 1234:列出程序號為1234的程序所開啟的檔案 lsof -g gid:顯示歸屬gid的程序情況 lsof +d /usr/local/:顯示目錄下被程序開啟的檔案 lsof +D /usr/local/:同上,但是會搜尋目錄下的目錄,時間較長 lsof -d 4:顯示使用fd為4的程序 lsof -i -U:顯示所有開啟的埠和UNIX domain檔案
netstat
netstat -tunlp 用於顯示 tcp,udp 的埠和程序等相關情況。
netstat 檢視埠佔用語法格式:
netstat -tunlp | grep 埠號
-t (tcp) 僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數位的全部轉化為數位
-l 僅列出在Listen(監聽)的服務狀態
-p 顯示建立相關連結的程式名
例如檢視 8000 埠的情況,使用以下命令:
# netstat -tunlp | grep 8000 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 26993/nodejs
更多命令:
netstat -ntlp //檢視當前所有tcp埠 netstat -ntulp | grep 80 //檢視所有80埠使用情況 netstat -ntulp | grep 3306 //檢視所有3306埠使用情況
kill
在查到埠佔用的程序後,如果你要殺掉對應的程序可以使用 kill 命令:
kill -9 PID
如上範例,我們看到 8000 埠對應的 PID 為 26993,使用以下命令殺死程序:
kill -9 26993
以上就是linux如何檢視埠佔用情況的詳細內容,更多請關注TW511.COM其它相關文章!