ss 命令是 linux 中高效查看套接字的工具,直接读取内核数据,比 netstat 更快更准;常用组合包括 -tuln 查监听端口、-tun 查已建立连接、-tulnp 显示进程、-s 统计摘要,并支持按状态、端口、ip 等条件过滤及深度诊断选项。

ss 命令是 Linux 中查看套接字详情最高效、最常用的工具,它直接从内核获取数据,比 netstat 更快更准确,尤其适合高并发环境。
快速查看常用连接状态
日常排查时,这几个组合最实用:
- ss -tuln:列出所有监听的 TCP 和 UDP 端口(不解析主机名和端口名),适合查服务是否真正启动
- ss -tun:查看所有已建立的 TCP/UDP 连接(不含监听态),常用于检查客户端连接
- ss -tulnp:加 -p 显示进程信息(需 root 权限),能直接看到哪个程序占用了某个端口
- ss -s:输出简洁统计摘要,包括 TCP 总数、ESTABLISHED 数、TIME-WAIT 数等,一眼掌握连接负载
按条件精准过滤套接字
ss 支持灵活的表达式语法,可定位具体连接:
- ss -t state established:只显示已建立的 TCP 连接
- ss -t state time-wait:筛选大量 TIME-WAIT 连接,辅助排查连接回收问题
- ss -t sport = :22:查找本地使用 22 端口(如 SSH 服务端)的连接
- ss -t dport = :3306:查找目标为 3306 端口(如 MySQL 客户端请求)的连接
- ss -t dst 10.0.1.5:过滤发往指定 IP 的所有 TCP 连接
- ss -t 'dport = :80 or dport = :443':用单引号包裹复合条件,查 Web 流量
获取深度连接信息
诊断性能或疑难问题时,这些选项能揭示更多细节:
- ss -tio:显示 TCP 计时器(keepalive、retransmit、timewait 等),判断连接是否异常挂起
- ss -ti:输出 TCP 内部状态,如 rto、rtt、qsize、cwnd、ssthresh 等,用于网络调优
- ss -tum:显示每个套接字的内存占用(recv-q、send-q、rmem、wmem),识别内存堆积连接
- ss -tpe:结合进程信息与扩展字段(如 UID、inode、sk),便于关联日志和系统资源
区分协议与地址族
避免 IPv4/IPv6 混淆,明确指定协议类型:
- ss -4tuln:仅显示 IPv4 的监听 TCP/UDP 端口
- ss -6tuln:仅显示 IPv6 的监听端口
- ss -x:查看 Unix 域套接字(如 Docker、systemd socket 激活相关)
- ss -A inet,unix:同时指定多种套接字类型,支持逗号分隔











