1. 程式人生 > 實用技巧 >Linux 檢視端口占用情況

Linux 檢視端口占用情況

Linux 檢視端口占用情況

Linux 檢視端口占用情況可以使用lsofnetstat命令。


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:顯示使用fd4的程序
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