ss用來顯示處於活動狀態的套接字信息。ss命令可以用來獲取socket統計信息,它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關TCP和連接狀態的信息,而且比netstat更快速更高效,ss利用到了TCP協議棧中tcp_diag,tcp_diag是一個分析統計模塊,直接從linux內核中獲取信息
參數:
-h:顯示幫助信息; -V:顯示指令版本信息; -n:不解析服務名稱,以數字方式顯示; -a:顯示所有的套接字; -l:顯示處於監聽狀態的套接字; -o:顯示計時器信息; -m:顯示套接字的內存使用情況; -p:顯示使用套接字的進程信息; -i:顯示內部的TCP信息; -4:只顯示ipv4的套接字; -6:只顯示ipv6的套接字; -t:只顯示tcp套接字; -u:只顯示udp套接字; -d:只顯示DCCP套接字; -w:僅顯示RAW套接字; -x:僅顯示UNIX域套接字。
ss -l 顯示本地打開的所有端口 ss -pl 顯示每個進程具體打開的socket ss -t -a 顯示所有tcp socket ss -u -a 顯示所有的UDP Socekt ss -o state established '( dport = :smtp or sport = :smtp )' 顯示所有已建立的SMTP連接 ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的HTTP連接 ss -x src /tmp/.X11-unix/* 找出所有連接X服務器的進程 ss -s 列出當前socket詳細信息:
ss dport OP PORT OP:是運算符 PORT:表示端口 dport:表示過濾目標端口、相反的有sport OP運算符如下: <= or le : 小於等於 >= or ge : 大於等於 == or eq : 等於 != or ne : 不等於端口 < or lt : 小於這個端口 > or gt : 大於端口 實例: ss sport = :http 也可以是 ss sport = :80 ss dport = :http ss dport \> :1024 ss sport \> :1024 ss sport \< :32000 ss sport eq :22 ss dport != :22 ss state connected sport = :http ss \( sport = :http or sport = :https \) ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24
實例:
顯示sockte連接: ss -s
[root@174nhy1 ~]# ss -s Total: 956 (kernel 1154) TCP: 18211 (estab 547, closed 17652, orphaned 1, synrecv 0, timewait 17652/0), ports 13506 Transport Total IP IPv6 * 1154 - - RAW 0 0 0 UDP 2 2 0 TCP 559 559 0 INET 561 561 0 FRAG 0 0 0
[root@174nhy1 ~]# ss -pl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 511 *:http *:* users:(("nginx",3241,459),("nginx",3242,459),("nginx",3243,459),("nginx",3244,459),("nginx",3245,459),("nginx",3246,459),("nginx",3247,459),("nginx",3248,459),("nginx",20849,459)) LISTEN 0 128 *:ssh *:* users:(("sshd",2481,3)) LISTEN 0 1024 127.0.0.1:atmtcp *:* users:(("monit",20197,5)) LISTEN 0 128 *:9090 *:* users:(("odin-agent",7241,7)) LISTEN 0 128 *:tr-rsrb-p2 *:* users:(("munin-agent",21407,3)) LISTEN 0 128 127.0.0.1:smux *:* users:(("snmpd",2666,8)) LISTEN 0 30000 127.0.0.1:9001 *:*