ss指令簡介
ss (socket statistics) 是一個指令行實用程式,用于調查 Linux 系統中的套接字。它顯示與netstat指令類似的資訊。它可以顯示更多的 TCP 和狀态資訊。
指令輸出結果包含以下列:
title | 描述 |
Netid | 套接字的類型。例如 u_str(Unix 流)、icmp6、tcp、udp 等。 |
state | 套接字的狀态。ESTAB:建立連接配接;UNCONN:未連接配接的連接配接;LISTEN:監聽連接配接 |
Recv-Q | 連接配接到此套接字的使用者程式未複制的位元組數 |
Send-Q | 遠端主機未确認的位元組數。 |
Local Address:Port | 本地ip位址:端口 |
Peer Address:Port | 遠端機器ip位址:端口 |
使用 ss 指令的不同示例
指令格式:
$ ss [選項]
重要 [選項] 參數:
- -a:顯示所有套接字
- -l:隻顯示監聽套接字
- -t:僅顯示 TCP 套接字
- -u:僅顯示 UDP 套接字
- -x:僅顯示 UNIX 域套接字
- -m:顯示套接字記憶體使用情況
- -s:顯示彙總統計資訊
1 用ss指令顯示所有連接配接
使用-aor--all選項,您可以檢視系統中的所有監聽和非監聽連接配接。
$ ss -a
2 使用 ss 指令隻顯示監聽套接字
預設情況下,監聽套接字不會顯示在輸出中。要檢視監聽套接字,可以使用-l 或者 --listening選項。
注:-a 會包含監聽套接字結果。
$ ss -l
或者
$ ss --listen
3. ss指令顯示所有TCP連接配接
可以使用-t或--tcp選項來過濾 TCP 連接配接的輸出。 以下指令顯示系統中的所有 TCP 連接配接。
$ ss -at
或者
$ ss -a --tcp
4. ss指令顯示所有UDP連接配接
類似的,可以使用-u 或者 --udp選項在輸出中僅檢視 UDP 連接配接。
$ss -au
或者
$ ss -a --udp
5. 顯示監聽 TCP 和 UDP 套接字
如果要檢視系統中正在監聽的 TCP 和 UDP 套接字,可以使用以下指令。
$ ss -ltu
6. 使用 ss 指令僅顯示 UNIX 域套接字
可以使用-x或--unix選項僅顯示系統中的 UNIX 域套接字。
$ ss -x
或者
$ ss --unix
7. 使用 ss 指令顯示所有 IPv4 套接字
可以使用-4或--ipv4選項來列出系統中的 IPv4 套接字。
$ss -a4
或者
$ ss -a --ipv4
8. 使用 ss 指令顯示所有 IPv6 套接字
可以使用-6 或者 --ipv6 選項列舉系統的IPv6套接字。
$ ss -a6
或者
$ ss -a --ipv6
9. ss 指令顯示主機名
-r 或者 --resolve選項顯示名稱而不是主機或端口的數字位址。
$ ss -r
或者
$ ss --resolve
10. 使用 ss 指令顯示詳細的套接字資訊
可以使用-e 或者 --extended選項在輸出中顯示詳細的套接字資訊。
$ss -e
或者
$ ss --extended
11. 使用 ss 指令顯示記憶體使用情況
使用-m 或 --memory選項,ss顯示系統中的套接字記憶體使用情況。
$ ss -m
或者
$ ss --memory
12. ss 指令顯示正在使用套接字的程序
-p 或者 --processes 選項顯示正在使用套接字的程序。
$ ss -p
或者
$ ss --processes
13.使用ss指令顯示内部TCP資訊
可以使用-i 或 --info 選項檢視内部 TCP 資訊。
$ ss -i
或者
$ ss --info
14. ss 指令顯示彙總統計資訊
代替顯示所有套接字,-s或--summary指令在輸出中列印套接字的摘要統計資訊。
$ ss -s
或者
$ ss --summary
15.用ss指令顯示定時器資訊
使用 -o 或者 --options 指令在輸出中顯示網絡計時器資訊。
$ ss -o
或者
$ ss --options
16 用ss指令顯示指定family類型的套接字
使用-f 或者 --family選項。可用的FAMILY:unix, inet, inet6, link, netlink
$ ss -f FAMILY
或者
$ ss --family FAMILY
17 ss指令關閉套接字
使用-K 或者 --kill選項将強制關閉套接字并列印關閉的套接字。此操作需要 root 權限才能終止套接字。
$ sudo ss -K
或者
$ sudo ss --kill
18. 在 ss 指令輸出中隐藏标題行
-H 或者 --hide 選項抑制或隐藏輸出中的标題行。
$ ss -H
或者
$ ss --hide
19.顯示所有已建立的ssh連接配接
可以使用以下指令顯示所有已建立的 SSH 連接配接到 Linux 伺服器
$ ss -o state established '(dport = :ssh or sport = :ssh)'
20. 使用 ss 指令定義連接配接狀态
我們可以使用-o state <STATE> 列出與相應狀态比對的連接配接。支援的狀态值如下:
STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
bucket := {syn-recv|time-wait}
big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}
例如,列舉所有connected的連結:
ss -o state connected | less