ss是iproute2包的一部分(控制TCP/IP網(wǎng)絡(luò)和流量的工具)。iproute2的目標(biāo)是替代先前用于配置網(wǎng)絡(luò)接口、路由表和管理ARP表的標(biāo)準(zhǔn)Unix網(wǎng)絡(luò)工具套裝(通常稱之為“net-tools”)。ss工具用于導(dǎo)出套接字統(tǒng)計(jì),它可以顯示與netstat類似的信息,且可以顯示更多的TCP和狀態(tài)信息。因?yàn)樗苯訌膬?nèi)核空間獲取信息,所以會(huì)更快。ss的操作和netstat很像,所以這讓它可以很容易就可以取代netstat。
使用和常見(jiàn)選項(xiàng)
ss和netstat很像,默認(rèn)它會(huì)顯示已經(jīng)建立連接的開(kāi)放的非監(jiān)聽(tīng)TCP套接字列表。并且你可以用下面的選項(xiàng)過(guò)濾輸出:
- -n - 不要嘗試解析服務(wù)名。
-r - 嘗試解析數(shù)字的地址/端口。
-a - 顯示所有套接字。
-l - 顯示監(jiān)聽(tīng)套接字。
-p - 顯示使用該套接字的進(jìn)程。
-s - 打印統(tǒng)計(jì)數(shù)據(jù)
-t - 只顯示TCP套接字。
-u - 只顯示UDP套接字。
-d - 只顯示DCCP套接字
-w - 只顯示RAW套接字。
-x - 只顯示Unix域套接字
-f FAMILY - 顯示FAMILY套接字的類型。目前支持下面這些族:unix、inet、inet6、link、netlink。
-A QUERY - 指定要列出的套接字列表,通過(guò)逗號(hào)分隔??梢宰R(shí)別下面的標(biāo)識(shí)符:all、inet、tcp、udp、raw、unix、packet、netlink、unixdgram、unixstream、packetraw、packetdgram。
-o STATUS - 列出指定狀態(tài)的套接字
ss 命令示例
1. 顯示所有的的TCP端口和使用它們的進(jìn)程:
# ss -tnap
2. 你可以使用-4 標(biāo)志來(lái)顯示IPv4鏈接,-6標(biāo)志來(lái)顯示IPv6鏈接,比如:
# ss -tnap6
3. 跟上面的行為一樣,你只需用u代替t就會(huì)顯示所有開(kāi)放的UDP端口。
# ss -unap
4. 你可以使用-s標(biāo)志來(lái)打印各種有用的統(tǒng)計(jì)數(shù)據(jù):
# ss -s
5. 你可以使用-o標(biāo)志來(lái)檢查所有不同狀態(tài)下的鏈接,比如顯示所有已經(jīng)建立的連接。
# ss -tn -o state established -p