【轉】Linux 檢視端口占用情況
阿新 • • 發佈:2020-11-23
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