ss是socket statistics的縮寫。顧名思義,ss命令可以用來獲取socket統計資訊,它可以顯示和netstat類似的內容。但ss的優勢在於它能夠顯示更多更詳細的有關tcp和連線狀態的資訊,而且比netstat更快速更高效。
當伺服器的socket連線數量變得非常大時,無論是使用netstat命令還是直接cat /proc/net/tcp,執行速度都會很慢。可能你不會有切身的感受,但請相信我,當伺服器維持的連線達到上萬個的時候,使用netstat等於浪費生命,而用ss才是節省時間。
天下武功唯快不破。ss快的秘訣在於,它利用到了tcp協議棧中tcp_diag。tcp_diag是乙個用於分析統計的模組,可以獲得linux 核心中第一手的資訊,這就確保了ss的快捷高效。
當然,如果你的系統中沒有tcp_diag,ss也可以正常執行,只是效率會變得稍慢。(但仍然比 netstat要快。)
1.命令格式:
ss [引數]
ss [引數] [過濾]
2.命令功能:
ss(socket statistics 的縮寫)命令可以用來獲取 socket統計資訊,此命令輸出的結果類似於 netstat輸出的內容,但它能顯示更多更詳細的 tcp連線狀態的資訊, 且比 netstat 更快速高效。它使用了 tcp協議棧中 tcp_diag(是乙個用於分析統計的模組),能直接從獲得第一手核心資訊,這就使得 ss命令快捷高效。在沒有 tcp_diag,ss也可以正常執行。
3.命令引數:
-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 := [,query]
-d, --diag=file 將原始tcp套接字(sockets)資訊轉儲到檔案
-f, --filter=file 從檔案中都去過濾器資訊
filter := [ state tcp-state ] [ expression ]
4.使用例項:
例項1:顯示tcp連線
命令:ss -t -a
輸出:[root@localhost~]#ss-t-a
staterecv-qsend-qlocaladdress:portpeeraddress:port
listen00127.0.0.1:smux*:*
listen00*:3690*:*
listen00*:ssh*:*
estab00192.168.120.204:ssh10.2.0.68:49368
[root@localhost~]#
說明:例項2:顯示 sockets 摘要
命令:ss -s
輸出:[root@localhost~]#ss-s
total:34(kernel48)
tcp:4(estab1,closed0,orphaned0,synrecv0,timewait0/0),ports3
transporttotalipipv6
*48--
raw000
udp550
tcp440
inet990
frag000
[root@localhost~]#
說明:列出當前的established, closed, orphaned and waiting tcp sockets
例項3:列出所有開啟的網路連線埠
命令:ss -l
輸出:[root@localhost~]#ss-l
recv-qsend-qlocaladdress:portpeeraddress:port
00127.0.0.1:smux*:*
00*:3690*:*
00*:ssh*:*
[root@localhost~]#
說明:例項4:檢視程序使用的socket
命令:ss -pl
輸出:[root@localhost~]#ss-pl
recv-qsend-qlocaladdress:portpeeraddress:port
00127.0.0.1:smux*:*users:(("snmpd",2716,8))
00*:3690*:*users:(("svnserve",3590,3))
00*:ssh*:*users:(("sshd",2735,3))
[root@localhost~]#
說明:例項5:找出開啟套接字/埠應用程式
命令:ss -lp | grep 3306
輸出:[root@localhost~]#ss-lp|grep1935
00*:1935*:*users:(("fmsedge",2913,18))
00127.0.0.1:19350*:*users:(("fmsedge",2913,17))
[root@localhost~]#ss-lp|grep3306
00*:3306*:*users:(("mysqld",2871,10))
[root@localhost~]#
說明:例項6:顯示所有udp sockets
命令:ss -u -a
輸出:[root@localhost~]#ss-u-a
staterecv-qsend-qlocaladdress:portpeeraddress:port
unconn00127.0.0.1:syslog*:*
unconn00*:snmp*:*
estab00192.168.120.203:3964110.58.119.119:domain
[root@localhost~]#
說明:例項7:顯示所有狀態為established的smtp連線
命令:ss -o state established '( dport = :smtp or sport = :smtp )'
輸出:[root@localhost~]#ss-ostateestablished'(dport=:smtporsport=:smtp)'
recv-qsend-qlocaladdress:portpeeraddress:port
[root@localhost~]#
Linux命令學習總結 flie命令
conjunction with m to debug a new magic file before installing it f,files from file read the filenames to be examined from file f,separator string use...
Linux命令大全
linux指令速成 在書店和網路中會有許多關於linux操作指令的書籍和頁面,許多介紹的都很全面,我們要想系統的掌握這方面的知識,這些資料是很不錯的選擇。但是作為乙個初學著,或者想要在較短的時間內就能簡單的應用linux,這樣做似乎會比較慢,其實我們大可不必儲備很多操作知識才去進行應用,就像我們學習...
linux命令大全
linux命令大全 一 安裝和登陸命令 1 進入圖形介面 startx 2 進入圖形介面 init 5 3 進入字元介面 init 3 4 登陸 login 5 關機 poweroff p 關閉機器的時候關閉電源 n 在關閉機器時不同步資料 w 不做關機的操作,只是把這個操作記錄到日誌裡 d 不把關...