ss是Socket Statistics的縮寫。顧名思義,ss命令能夠用來獲取socket統計信息,它能夠顯示和netstat相似的內容。但ss的優點在於它可以顯示更多更詳細的有關TCP和鏈接狀態的信息,並且比netstat更快速更高效。html
當服務器的socket鏈接數量變得很是大時,不管是使用netstat命令仍是直接
cat /proc/net/tcp
,執行速度都會很慢。linuxss快的祕訣在於,它利用到了TCP協議棧中tcp_diag。tcp_diag是一個用於分析統計的模塊,能夠得到Linux內核中第一手的信息,這就確保了ss的快捷高效。固然,若是你的系統中沒有tcp_diag,ss也能夠正常運行,只是效率會變得稍慢。(但仍然比netstat要快。)segmentfault
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 的有關統計信息
{all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
> ss -a -t
> ss -a -u
> ss -s
列出當前的established, closed, orphaned and waiting TCP sockets
> 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能夠是下面的任何一個
> 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 本地端口和一個數比較。
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比。
原文連接:https://rumenz.com/rumenbiji/...
微信公衆號:入門小站服務器