ss 是 Socket Statistics 的首字母缩写。

  • ss 命令由 iproute2 软件包提供(yum install iproute)。

  • iproute 2 包中的命令可以完全替代 net-tools 包中的 ifconfig、netstat、route 等命令。

无选项

单独使用的 ss 命令用于显示已建立的网络连接。例如:

# ss
Netid  State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port
tcp    ESTAB  0       0       10.0.2.10:ssh       10.0.2.2:52316

上述输出结果中的 ESTAB 代表网络连接的状态是“已建立”(Established)。

-h 选项

-h 或 --help 用于显示帮助信息。

当然,也可以使用 man ss 命令查看更详细的帮助文档。

-a 选项

-a 或 --all 用于显示所有的网络连接:监听中和非监听中(对于 tcp,就是监听中和已建立)。例如:

# ss -a
Netid  State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port
tcp   ESTAB   0       0       10.0.2.10:ssh       10.0.2.2:52316
tcp   LISTEN  0       128     [::]:ssh            [::]:*

-l 选项

-l 或 --listening 用于显示处于监听状态的网络连接。例如:

# ss -l
Netid  State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port
tcp    LISTEN 0       128     *:ssh               *:*

上述输出结果中的 LISTEN 代表网络连接的状态是“监听中”(Listening)。

-n 选项

-n 或 --numeric 用于显示端口号,而非使用该端口号的服务。例如:

# ss -n
Netid  State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port
tcp    ESTAB  0       0       10.0.2.10:22        10.0.2.2:52316

使用选项 -n 后,显示端口号 22,而非使用 22 端口号的 ssh。

-p 选项

-p 或 --processes,显示端口对应的进程名和进程号 PID。

其它常用选项

  • -t 或 --tcp,仅显示 tcp 端口。

  • -u 或 --udp,仅显示 udp 端口。

  • -x 或 --unix,仅显示 Unix domain sockets。