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查看工具
格式:ss [options] [ FILTER ]
常用選項:
-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)
-A 查詢socket {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-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/*