看下Linux 如何檢視埠占用情況

大雄45發表於2021-04-07
導讀  檢視埠占用情況可以使用 lsof 和 netstat  。

看下Linux 如何檢視埠占用情況看下Linux 如何檢視埠占用情況

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

看下Linux 如何檢視埠占用情況看下Linux 如何檢視埠占用情況

更多 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 埠號
  1. -t (tcp) 僅顯示tcp相關選項
  2. -u (udp)僅顯示udp相關選項
  3. -n 拒絕顯示別名,能顯示數字的全部轉化為數字
  4. -l 僅列出在Listen(監聽)的服務狀態
  5. -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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2766951/,如需轉載,請註明出處,否則將追究法律責任。

相關文章