每天linux命令 57 ss命令

2022-12-07 13:09:03 字數 3833 閱讀 9762

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 不把關...