天天看點

ss指令使用示例

當伺服器的socket連接配接數量變得非常大時,無論是使用netstat指令還是直接cat /proc/net/tcp,執行速度都會很慢。可能你不會有 切身的感受,但當伺服器維持的連接配接達到上萬個的時候,使用netstat等于浪費 生命,而用ss才是節省時間。天 下武功唯快不破。ss快的秘訣在于,它利用到了TCP協定棧中tcp_diag。tcp_diag是一個用于分析統計的子產品,可以獲得Linux 核心中 第一手的資訊,這就確定了ss的快捷高效。當然,如果你的系統中沒有tcp_diag,ss也可以正常運作,隻是效率會變得稍慢。(但仍然 比 netstat要快。)

指令格式

ss [參數]

指令功能

ss(Socket Statistics 的縮寫)指令可以用來擷取 socket統計資訊,此指令輸出的結果類似于 netstat輸出的内容,但它能顯示更多更詳細的 TCP連接配接狀态的資訊, 且比 netstat 更快速高效。它使用了 TCP協定棧中 tcp_diag(是一個用于分析統計的子產品),能直接從獲得第一手核心資訊,這就使 得 ss指令快捷高效。在沒有 tcp_diag,ss也可以正常運作。

指令參數

使用執行個體

執行個體1:顯示TCP連接配接

執行個體2:顯示 Sockets 摘要

說明:列出目前的established, closed, orphaned and waiting TCP sockets

執行個體3:列出所有打開的網絡連接配接端口

執行個體4:檢視程序使用的socket

執行個體5:找出打開套接字/端口應用程式

執行個體6:顯示所有UDP Sockets

執行個體7:顯示所有狀态為established的SMTP連接配接

執行個體8:顯示所有狀态為Established的HTTP連接配接

執行個體9:列舉出處于 FIN-WAIT-1狀态的源端口為 80或者 443,目标網絡為 193.233.7/24所有 tcp套接字

執行個體10:用TCP 狀态過濾Sockets

指令:

輸出:

說明: FILTER-NAME-HERE 可以代表以下任何一個:

established

syn-sent

syn-recv fin-wait-1

fin-wait-2 time-wait

closed

close-wait

last-ack listen

closing

all : 所有以上狀态

connected : 除了listen and closed的所有狀态

synchronized :所有已連接配接的狀态除了syn-sent

bucket : 顯示狀态為maintained as minisockets,如:time-wait和syn-recv.

big : 和bucket相反.

執行個體11:比對遠端位址和端口号

執行個體12:比對本地位址和端口号 指令:

執行個體13:将本地或者遠端端口和一個數比較 指令:

說明: ss dport OP PORT 遠端端口和一個數比較;ss sport OP PORT 本地端口和一個數比較。

OP 可以代表以下任意一個:

<= or le : 小于或等于端口号 >= or ge : 大于或等于端口号

== or eq : 等于端口号

!= or ne : 不等于端口号

< or gt : 小于端口号

> or lt : 大于端口号

執行個體14:ss 和 netstat 效率對比

說明:用time 指令分别擷取通過netstat和ss指令擷取程式和概要占用資源所使用的時間。在伺服器連接配接數比較多的時候,netstat的效率完全沒法和ss比。

本文轉自Linux就該這麼學部落格園部落格,原文連結:http://www.cnblogs.com/linuxprobe/p/5400548.html,如需轉載請自行聯系原作者

繼續閱讀