linux如何檢視埠或服務被佔用情況
阿新 • • 發佈:2020-07-26
1. lsof命令
功能:列出開啟的檔案
常用選項:
-i [i] 監聽的網路地址,如果沒有指定,預設列出所有。
[i]來自[46][protocol][@hostname|hostaddr][:service|port]
-U 列出Unix域socket檔案
-p 指定PID
-u 指定使用者名稱或UID所有開啟的檔案
+D 遞迴搜尋
例項:
列出所有開啟的檔案: # lsof 檢視哪個程序佔用檔案: # lsof /etc/passwd 列出所有開啟的監聽地址和unix域socket檔案: # lsof -i -U 列出80埠監聽的程序: # lsof -i:80 列出埠1-1024之間的所有程序: # lsof -i:1-1024 列出所有TCP網路連線: # lsof -i tcp 列出所有UDP網路連線: # lsof -i udp 根據檔案描述符列出開啟的檔案: # lsof -d 1 列出某個目錄被開啟的檔案: # lsof +D /var/log 列出程序ID開啟的檔案: # lsof -p 5373 開啟所有登入使用者名稱abc或user id 1234,或PID 123或PID 456: # lsof -p 123,456 -u 123,abc 列出COMMAND列中包含字串sshd: # lsof -c sshd
2. netstat命令
功能:列印網路連線、路由表、介面統計資訊、偽裝連線和多播成員
常用選項:
-r 顯示路由表
-i 顯示介面表
-n 不解析名字
-p 顯示程式名 PID/Program
-l 顯示監聽的socket
-a 顯示所有socket
-o 顯示計時器
-Z 顯示上下文
-t 只顯示tcp連線
-u 只顯示udp連線
-s 顯示每個協議統計資訊
例項:
顯示所有監聽: # netstat -anltu 顯示所有TCP連線: # netstat -antp 顯示所有UDP連線: # netstat -anup 顯示路由表: # netstat -r
3. ss命令
功能:比netstat更強大的socket檢視工具
常用選項:
-n 不解析名字
-a 顯示所有socket
-l 顯示所有監聽的socket
-o 顯示計時器
-e 顯示socket詳細資訊
-m 顯示socket記憶體使用
-p 顯示程序使用的socket
-i 顯示內部TCP資訊
-s 顯示socket使用匯總
-4 只顯示IPV4的socket
-0 顯示包socket
-t 只顯示TCP socket
-u 只顯示UDP socket
-d 只顯示DCCP socket
-w 只顯示RAW socket
-x 只顯示Unix域socket
-f FAMILY 只顯示socket族型別( unix, inet, inet6, link, netlink)
-D 將原始的TCP socket轉儲到檔案
-F 從檔案中讀取過濾資訊
過濾:
-o state 顯示TCP連線狀態資訊
例項:
顯示所有TCP連線: # ss -t -a 顯示所有UDP連線: # ss -u –a 顯示socket使用匯總: # ss -s 顯示所有建立的連線: # ss -o state established 顯示所有的TIME-WAIT狀態: # ss -o state TIME-WAIT 搜尋所有本地程序連線到X Server: # ss -x src /tmp/.X11-unix/*