ss 工具是一個 CLI 命令,用於在 Linux 中顯示有關網絡套接字的信息。 ss 代表套接字統計信息。 它是一個類似於netstat的工具,可以顯示更多的TCP、狀態信息等信息。
ss 工具隨 iproute2 包一起提供。 它可以顯示 PACKET、TCP、UDP、DCCP、RAW 和 Unix 域套接字的統計信息。
在本教程中,我們學習 ss 命令 在 Linux 中提供有用的示例。
1. 列出網絡連接
不帶任何選項的 ss 命令列出所有已建立連接的打開的非偵聽套接字(例如 TCP/UNIX/UDP)。
$ ss
- Netid:它顯示套接字的類型。
- 狀態:如果套接字已建立 (ESTAB)、未連接 (UNCONN) 或偵聽 (LISTEN),則它會顯示套接字的狀態。
- Recv-Q:顯示隊列中接收到的數據包數量。
- Send-Q:顯示隊列中發送的數據包數量。
- 本地地址:端口:顯示本地機器的地址和端口。
- Peer address:port :顯示遠程機器的地址和端口。
您可以通過將 ss 命令與選項結合使用來獲取更詳細的信息。 您也可以同時選擇多個選項。
ss 命令語法:
$ ss [Option]
$ ss [Option1] [Option2] [Option3]
2. 列出監聽套接字
使用顯示偵聽套接字列表 -l
或者 --listen
選項。
$ ss -l

3. 列出所有套接字
您可以使用以下命令列出所有偵聽和非偵聽網絡連接 -a
或者 -all
選項。
$ ss -a

4. 列出 TCP 連接
要顯示 TCP 套接字連接,請使用 -t
或者 --tcp
選項。
$ ss -t

顯示列表 所有 TCP 連接,您可以使用 -a
和 -t
選項。 這包括套接字的所有狀態。
$ ss -at
要顯示所有偵聽狀態的 TCP 連接,請結合 -l
和 -t
選項。
$ ss -alt
5. 升UDP 連接
要顯示 UDP 套接字連接,請使用 -u
或者 --udp
選項。
$ ss -u

要顯示 所有 UDP 連接的列表, 利用 -a
和 -u
選項。 這包括套接字的所有狀態。
$ ss -au
你可以結合 -l
和 -u
顯示 UDP 連接 所有收聽狀態.
$ ss -lu
6. 列出 Unix 套接字
要顯示所有 Unix 套接字,您可以使用 ss 命令以及 -f unix
或者 -x
.
$ ss -f unix

7. 列出原始套接字
要顯示所有原始套接字,您可以使用 -w
或 –raw 選項。
$ ss -w

8. 列出IP地址的連接
我們可以使用 ss 命令來顯示特定目標或源 IP 地址的列表連接。
為了 example 列出目標 IP 地址的連接:
$ ss dst 13.227.138.30

為了 example 列出源 IP 地址的連接:
$ ss src 192.168.18.151

9. 列出 IPv4 和 IPv6 套接字連接
如果要顯示 IPv4 套接字連接列表,請使用 -4 選項和 -6 以顯示 IPv6 套接字連接列表。
顯示 IPv4 套接字連接列表:
$ ss -4

要顯示 IPv6 套接字連接列表:
$ ss -6

要列出所有 IPv4 TCP 連接,您可以使用以下命令 example.
$ ss -at4

10. 識別流程
你可以找到 套接字進程 使用 -p
選項以及 ss 命令。 要識別該過程,您需要 sudo 允許。
$ sudo ss -t -p

11.列出沒有主機名解析的連接
要解析數字地址/端口,請使用 -r(解析)選項。 而——n
選項不會嘗試解析服務名稱。
這裡在 example,可以看出兩者的區別:
$ ss -tn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 74.208.235.196:22 48.192.234.17:60216
$ ss -tr
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 64 li82-186.members.linode.com:ssh n47-172-231-17.sun4.vic.optusnet.com.au:60317
$
12. 按連接過濾
讓我們來看看如何應用過濾器來輸出特定信息的幾個例子。
要使用狀態偵聽過濾 TCP 連接,請鍵入:
$ ss -t state listening
顯示已建立的 ssh 端口連接:
$ ss -tr state established '( dport = :22 or sport = :22 )'
您也可以通過傳統的 grep 命令方式進行過濾。 在這裡,我顯示了處於監聽狀態的所有 TCP 連接:
$ ss -at | grep LISTEN
ss 命令選項
ss 命令提供了各種選項來控制根據您的要求顯示的輸出。 您可以將 -h 或 –help 與 ss 命令一起使用來查看 ss 命令實用程序可用的基本選項。
$ ss -h

ss vs netstat 命令
ss 工具包含在 iproute2 包下,並且在大多數 Linux 發行版中都是默認設置。 要使用 netstat,您需要安裝 net-tools,該工具已被棄用。 ss 命令要快得多,因為它直接從內核中獲取。 ss並不是netstat的完全替代,netstat的一些命令是被ip命令替代的。
結論
在本教程中,我們通過一些有用的示例了解了 ss 命令。 你可以參考 ss 命令手冊頁 想要查詢更多的信息。