linux如何檢視埠佔用情況

2020-10-13 18:00:55

在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 使用者的許可權來執行,如下圖:

ecfba4db9e3837639bbf8b409765c69.png

更多 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其它相關文章!