ss是Socket Statistics的縮寫。顧名思義,ss命令能夠用來獲取socket統計信息,它能夠顯示和netstat相似的內容。但ss的優點在於它可以顯示更多更詳細的有關TCP和鏈接狀態的信息,並且比netstat更快速更高效。html
當服務器的socket鏈接數量變得很是大時,不管是使用netstat命令仍是直接
cat /proc/net/tcp
,執行速度都會很慢。linux
ss快的祕訣在於,它利用到了TCP協議棧中tcp_diag。tcp_diag是一個用於分析統計的模塊,能夠得到Linux內核中第一手的信息,這就確保了ss的快捷高效。固然,若是你的系統中沒有tcp_diag,ss也能夠正常運行,只是效率會變得稍慢。(但仍然比netstat要快。)服務器
ss命令用於顯示socket狀態. 他能夠顯示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等統計. 它比其餘工具展現等多tcp和state信息. 它是一個很是實用、快速、有效的跟蹤IP鏈接和sockets的新工具.SS命令能夠提供以下信息微信
ss [參數]
ss [參數] [過濾
複製代碼
比 netstat 好用的socket統計信息,iproute2 包附帶的另外一個工具,容許你查詢 socket 的有關統計信息markdown
{all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
> ss -a -t
複製代碼
> ss -a -u
複製代碼
> ss -s
複製代碼
列出當前的established, closed, orphaned and waiting TCP socketsdom
> ss -ln
複製代碼
> ss -pl
複製代碼
> ss -nlp | grep 3306
複製代碼
> ss -o state established '( dport = :smtp or sport = :smtp )'
複製代碼
> ss -o state established '( dport = :http or sport = :http )'
複製代碼
> ss -4 state FILTER-NAME-HERE
> ss -6 state FILTER-NAME-HERE
複製代碼
FILTER-NAME-HERE能夠是下面的任何一個socket
> ss dst ADDRESS_PATTERN
> ss dst 192.168.1.1
> ss dst 192.168.21.1:http
> ss dst 192.168.21.1:smtp
> ss dst 192.168.21.1:443
複製代碼
> ss sport = :http
> 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
複製代碼
ss dport OP PORT 遠程端口和一個數比較;ss sport OP PORT 本地端口和一個數比較。tcp
OP
能夠表明如下任意一個:<=
or le : 小於或等於端口號>=
or ge : 大於或等於端口號==
or eq : 等於端口號!=
or ne : 不等於端口號<
or gt : 小於端口號>
or lt : 大於端口號> time netstat -at
real 0m10.849s
user 0m0.013s
sys 0m0.008s
> time ss
real 0m0.008s
user 0m0.004s
sys 0m0.004s
複製代碼
用time 命令分別獲取經過netstat和ss命令獲取程序和概要佔用資源所使用的時間。在服務器鏈接數比較多的時候,netstat的效率徹底無法和ss比。工具
原文連接:rumenz.com/rumenbiji/l… 微信公衆號:入門小站oop