DeepSeek:v3:
ss 是 Linux 系统中用于查看网络连接、路由表、接口统计信息等网络相关信息的命令行工具。它是 netstat 命令的替代品,提供了更快的性能和更丰富的功能。ss 命令直接从内核空间获取信息,因此比 netstat 更高效。
基本语法
ss [选项] [过滤条件]
常用选项
-t:显示 TCP 连接。-u:显示 UDP 连接。-l:显示监听中的套接字。-a:显示所有套接字(包括监听和非监听的)。-n:不解析主机名和服务名,直接显示 IP 地址和端口号。-p:显示进程信息(需要 root 权限)。-s:显示汇总统计信息。-4:仅显示 IPv4 连接。-6:仅显示 IPv6 连接。-o:显示计时器信息。-r:尝试解析主机名。
示例用法
-
显示所有 TCP 连接
ss -t -a -
显示所有 UDP 连接
ss -u -a -
显示所有监听中的套接字
ss -l -
显示所有 TCP 连接并解析主机名和服务名
ss -t -a -r -
显示所有 TCP 连接并显示进程信息
sudo ss -t -a -p -
显示所有 IPv4 连接
ss -4 -a -
显示所有 IPv6 连接
ss -6 -a -
显示所有 TCP 连接的计时器信息
ss -t -o -
显示网络统计信息
ss -s
过滤条件
ss 命令支持多种过滤条件来精确筛选显示的连接。例如:
-
按端口过滤
ss -t src :80显示源端口为 80 的 TCP 连接。
-
按 IP 地址过滤
ss -t dst 192.168.1.1显示目标 IP 为 192.168.1.1 的 TCP 连接。
-
按状态过滤
ss -t state established显示所有处于
ESTABLISHED状态的 TCP 连接。
常见状态
ESTABLISHED:连接已建立。LISTEN:套接字正在监听连接。CLOSE_WAIT:等待关闭连接。TIME_WAIT:等待足够的时间以确保远程 TCP 收到连接中断的确认。
总结
ss 命令是一个强大且高效的网络工具,适合用于查看和分析网络连接信息。通过不同的选项和过滤条件,可以快速获取所需的网络信息。