文章目录
- ss命令简介
- 使用 ss 命令的不同示例
- 1 用ss命令显示所有连接
- 2 使用 ss 命令只显示监听套接字
- 3. ss命令显示所有TCP连接
- 4. ss命令显示所有UDP连接
- 5. 显示监听 TCP 和 UDP 套接字
- 6. 使用 ss 命令仅显示 UNIX 域套接字
- 7. 使用 ss 命令显示所有 IPv4 套接字
- 8. 使用 ss 命令显示所有 IPv6 套接字
- 9. ss 命令显示主机名
- 10. 使用 ss 命令显示详细的套接字信息
- 11. 使用 ss 命令显示内存使用情况
- 12. ss 命令显示正在使用套接字的进程
- 13.使用ss命令显示内部TCP信息
- 14. ss 命令显示汇总统计信息
- 15.用ss命令显示定时器信息
- 16 用ss命令显示指定family类型的套接字
- 17 ss命令关闭套接字
- 18. 在 ss 命令输出中隐藏标题行
- 19.显示所有已建立的ssh连接
- 20. 使用 ss 命令定义连接状态
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-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