首页/网络/网络排障速查/ss 查看套接字:输出字段判读

ss 查看套接字:输出字段判读

ss 是 iproute2 提供的套接字查看工具,直接读内核 netlink,已全面取代 netstat;输出里的 Recv-Q/Send-Q、State、Local/Peer 与进程列是排障最先要读懂的信息。

网络排障速查网络更新于 2026-10-13

ss 是什么

ss 是 iproute2 套件里的套接字查看工具,直接向内核查询连接信息,速度比老工具快得多,现代发行版已用它全面替代 netstat。默认输出给出网络类型、状态、收发送队列、本地地址端口与对端地址端口这五组信息;加上进程参数还能显示归属进程。做端口与连接排查时,先读懂这几列,后面的过滤与统计才有意义。

基本信息

适用平台Linux 各主流发行版,随 iproute2 一起预装
核心用法ss -tun 看总览、ss -tuln 看监听、ss -tan 看全部连接、ss -s 看汇总
常用参数-t TCP、-u UDP、-a 全部状态、-l 仅监听、-n 不解析、-p 显示进程、-H 去掉表头
权限要求查看连接不需特权;显示进程归属需要 root 或与进程同用户
过滤能力支持按端口、地址、状态过滤,表达式建议用单引号包裹

典型使用场景

  • 确认服务是否在监听:部署后第一件事是看端口有没有起来、监听在哪个地址
  • 定位连接来源:确认某个数据库或应用端口被哪些地址连接
  • 排查队列异常:看监听队列是否积压、已建立连接是否有未读数据
  • 连接数统计:按状态或端口聚合,为容量与调优提供依据
  • 替代老命令:老脚本里的 netstat 参数大多能在 ss 上找到对应写法

典型输出与常用写法

典型输出与常用写法
$ ss -tun
Netid  State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
tcp    LISTEN  0       128     0.0.0.0:80           0.0.0.0:*
tcp    ESTAB   0       0       10.0.0.5:22          10.0.0.9:51422
udp    UNCONN  0       0       127.0.0.53:53        0.0.0.0:*

$ ss -tlnp | head        # 只看 TCP 监听并显示进程
$ ss -s | head -5        # 连接数量汇总
$ ss -tanp '( dport = :443 )'   # 过滤表达式要加引号

输出逐列读法

列含义正常与异常
Netid套接字类型,tcp 或 udp同一端口同时出现两种类型说明服务分别监听
State连接状态,如 LISTEN、ESTAB、TIME-WAIT非监听状态大量堆积要按状态分类分析
Recv-Q接收队列,已建立连接时是未读字节数;监听时是等待应用接受的新连接数监听的队列值持续增长说明应用接受不及时
Send-Q发送队列,已建立连接时是未确认字节数;监听时是等待队列上限已建立连接长期非零说明对端接收慢或链路拥塞
Local Address:Port本端地址与端口监听到回环地址时外部无法访问
Peer Address:Port对端地址与端口对端端口是随机高位端口,属正常现象
Process归属进程名与进程号,需 -p看不到进程多为权限不足,而非命令不可用
解析队列与接收队列方向相反容易混:Recv-Q 是别人发给本进程、本进程还没读走的数据;Send-Q 是本进程已发出、对端还没确认的数据。
ss -s 给出的是分协议汇总数量,适合做第一眼体检;确定异常方向后再用状态过滤精查具体连接。

常用过滤与统计

需求写法要点输出解读
只看某个服务端口按目的端口过滤并加引号得到的都是与该服务相关的连接
统计某端口连接总数过滤后交给行数统计并去掉表头数值反映当前瞬间的并发规模
按对端地址聚合截取对端地址列后排序去重计数快速看出连接集中在哪些来源
只看某台来源按来源地址条件过滤用于核对白名单与异常来源
按状态精查指定状态名并用小写连字符写法便于定位积压或异常回收的连接
过滤表达式不加引号时括号与比较符会被命令行解释器吃掉,命令直接报语法错误,现场容易误判为工具损坏。

易错点

  • 把监听的接收队列非零当成网络丢包:它是应用接受连接不及时造成的队列积压,方向完全不同
  • 混淆本地与对端两列的含义,把对端的随机端口当成服务端口,得出错误的异常连接结论
  • 在无法解析名称的现场忘了加不解析参数,输出里混入大量反查结果,既慢又容易误读
  • 用普通用户执行并期待看到全部进程归属,看不到时误认为命令失效
  • 只用 ss 下结论不结合抓包:连接状态看得见,丢在哪一跳、被谁重置仍要看报文

数据来源与参考

  • man 8 ss(iproute2)
  • iproute2 项目文档:ss(8)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌