首页/网络/网络排障速查/ss 按 TCP 状态统计连接

ss 按 TCP 状态统计连接

连接数故障的第一步分解:按状态统计数量。ESTAB 高、TIME-WAIT 高、CLOSE-WAIT 高指向完全不同的根因,先把分布看清楚再谈处置。

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

一次性状态计数

一次性状态计数
for s in established syn-recv fin-wait-1 fin-wait-2 time-wait close-wait last-ack closing listen; do
  echo "$s $(ss -Htan state $s | wc -l)"
done
# 直接按状态聚合:
ss -Htan state all | awk '{print $1}' | sort | uniq -c | sort -rn
场景连接数异常 / 回收慢 / 服务无响应
要点state 名称小写、连字符分隔;-H 去表头便于计数
配套ss -s 看汇总,本命令定位到具体状态
CLOSE-WAIT 堆积基本都是应用没有 close(连接池泄漏、代码漏关),调内核参数无效,要从代码与连接池入手。

易错点

  • 用 wc -l 计数不减表头(差 1),批量核对时错位;加 -H 可规避
  • 把 TIME-WAIT 与 CLOSE-WAIT 混为一谈:前者是主动关闭方的正常回收态,后者是被动方迟迟不关闭

数据来源与参考

  • man 8 ss(iproute2)
  • RFC 9293:TCP 状态机

相关工具

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