ss 命令是 Socket Statistics 的缩写,它是一个用于显示 socket 统计信息的工具,常用于获取网络连接和监听端口的信息。它提供了比 netstat 更多的 TCP 和连接状态的详细信息,并且执行速度更快。ss 命令利用了 TCP 协议栈中的 tcp_diag 模块,可以直接从 Linux 内核获取信息,从而提高了效率。
常用选项
- -t, --tcp:仅显示 TCP 套接字。
- -u, --udp:仅显示 UDP 套接字。
- -x, --unix:显示 Unix 域套接字。
- -n, --numeric:不解析服务名称,直接显示数字。
- -l, --listening:仅显示监听状态的套接字。
- -p, --processes:显示使用套接字的进程信息。
- -a, --all:显示所有套接字。
- -r, --resolve:解析服务名称。
- -s, --summary:显示套接字使用摘要。
常见用例
- 查看所有 TCP 连接:
bash
ss -t -a
- 查看监听的端口:
bash
ss -l
- 查看特定服务的连接(例如 SSH):
bash
ss -tlp | grep ssh
- 查看进程使用的 socket:
bash
ss -pl
- 显示所有 UDP Sockets:
bash
ss -u -a
- 显示所有处于 TIME-WAIT 状态的 TCP 连接:
bash
ss -t state time-wait
- 显示所有建立的连接并显示进程信息:
bash
ss -tap
- 仅显示 IPv4 或 IPv6 连接:
bash
ss -4 或 ss -6
- 显示所有连接的统计摘要:
bash
ss -s
-
显示所有源端口或目的端口为特定端口的套接字(例如端口 80):
bash ss -ant '( dport = :80 or sport = :80 )'
注意事项
- 使用
ss命令通常需要 root 权限,特别是在使用-p选项查看进程信息时。 ss命令的输出可以通过各种选项和过滤器进行定制,以满足特定的需求。- 在使用
ss命令时,应该根据实际需求选择合适的选项,以获取最有用的信息。
以上信息结合了多个来源的详细解释和示例,以帮助用户更好地理解和使用 ss 命令。