查看監聽端口的命令以下:socket
netstat、lsof、sstcp
lsof命令:ui
一、lsof -i:80 #顯示全部打開80端口的進程unix
二、netstat進程
netstat參數以下:ip
-a (all)顯示全部選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的所有轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態內存
-p 顯示創建相關連接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。資源
netstat -lnpt | grep -w 80 #顯示TCP相關的監聽80端口的狀態路由
三、ssio
ss參數以下:
-h, --help幫助信息
-V, --version程序版本信息
-n, --numeric不解析服務名稱
-r, --resolve 解析主機名
-a, --all顯示全部套接字(sockets)
-l, --listening顯示監聽狀態的套接字(sockets)
-o, --options 顯示計時器信息
-e, --extended 顯示詳細的套接字(sockets)信息
-m, --memory 顯示套接字(socket)的內存使用狀況
-p, --processes顯示使用套接字(socket)的進程
-i, --info顯示 TCP內部信息
-s, --summary顯示套接字(socket)使用概況
-4, --ipv4 僅顯示IPv4的套接字(sockets)
-6, --ipv6 僅顯示IPv6的套接字(sockets)
-0, --packet 顯示 PACKET 套接字(socket)
-t, --tcp僅顯示 TCP套接字(sockets)
-u, --udp僅顯示 UCP套接字(sockets)
-d, --dccp僅顯示 DCCP套接字(sockets)
-w, --raw僅顯示 RAW套接字(sockets)
-x, --unix僅顯示 Unix套接字(sockets)
-f, --family=FAMILY 顯示 FAMILY類型的套接字(sockets),FAMILY可選,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 將原始TCP套接字(sockets)信息轉儲到文件
-F, --filter=FILE 從文件中都去過濾器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
ss -ltn | grep -w 80 #顯示TCP相關的監聽80端口的狀態
三者雖然達到的目的相同,可是速度區別卻很大:
比較一下速度,ss命令遠遠快於其餘兩個命令。
netstat是遍歷/proc下面每一個PID目錄,ss直接讀/proc/net下面的統計信息。因此ss執行的時候消耗資源以及消耗的時間都比netstat少不少