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
例項2:顯示 sockets 摘要
命令:ss -s
例項3:列出所有開啟的網路連線埠
命令:ss -l
例項4:檢視程序使用的socket
命令:ss -pl
例項5:找出開啟套接字/埠應用程式
命令:ss -lp|grep 3306
例項6:顯示所有udp sockets
命令:ss -u -a
例項7:顯示所有狀態為established的smtp連線
命令:ss -o state established '( dport = :smtp or sport = :smtp )'
例項8:顯示所有狀態為established的http連線
命令:ss -o state established '( dport = :http or sport = :http )'
例項9:列舉出處於 fin-wait-1狀態的源埠為 80或者 443,目標網路為 193.233.7/24所有 tcp套接字
命令:ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24
例項10:用tcp 狀態過濾sockets:
命令:
ss -4 state filter-name-here
ss -6 state filter-name-here
說明:
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
說明:
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 -at
time ss
說明:
用time 命令分別獲取通過netstat和ss命令獲取程式和概要占用資源所使用的時間
。在伺服器連線數比較多的時候,
netstat的效率完全沒法和ss比。
linux基本命令
linux常用命令 基礎 eg man ls 就可以檢視ls相關的用法 注 按q鍵或者ctrl c退出,在linux下可以使用ctrl c終止當前程式執行。2.ls 檢視目錄或者檔案的屬 列舉出任一目錄下面的檔案 eg ls usr man ls l a.d表示目錄 directory 如果是乙個 ...
《linux基本命令》
博主部落格 斷橋殘雪 uname 顯示版本資訊 同win2k的 ver dir 顯示當前目錄檔案,ls al 顯示包括隱藏檔案 同win2k的 dir pwd 查詢當前所在的目錄位置 cd cd 回到上一層目錄,注意cd 與.之間有空格。cd 返回到根目錄。cat 檔名 檢視檔案內容 cat abc...
LINUX 基本命令
檔案和目錄操作的基本命令 cat clear cmp cut diff du emacs fgrep file grep head ln less more pico pwd sort stat strings tail touch umask uniq vi wc whatis ls ls 選項 ...