首页/系统/Linux 运维命令速查/ss -s 连接统计总览
网络命令82 条

ss -s 连接统计总览

一眼看全机器的套接字总量与 TCP 状态分布:established/time-wait/orphan 等,判断连接风暴与句柄压力的入口。

Linux 运维命令速查系统更新于 2026-10-13

ss -s 看的是什么

ss 来自 iproute2 套件,ss -s 只输出一段统计摘要:本机当前各类套接字的总数,以及 TCP 处于 estab、closed、orphaned、timewait 等状态的连接数。它比 netstat -s 更聚焦「此刻的连接分布」,是判断连接数是否异常、句柄有没有泄漏的第一眼工具;发现哪一类计数不对,再用 ss -tnp 找出具体连接和对应进程。

基本信息

适用平台Linux(iproute2),用于替代 net-tools 的 netstat
语法ss -s
输出内容套接字总数与 TCP 各状态计数
权限要求普通用户可读计数;要显示进程名需 root 或查看自身进程

典型使用场景

  • 服务响应变慢时先看连接是否已经堆积
  • 压测过程中观察 estab 与 timewait 的增长趋势
  • 怀疑程序泄漏句柄时看 orphaned 是否持续上升
  • 调整内核连接相关参数后复测效果
  • 快速判断是连接数问题还是后端响应慢的问题

常用示例

常用示例
ss -s                                    # 一屏统计摘要
ss -s | grep -E 'TCP|estab|timewait'     # 只看关心的计数行
watch -n 2 'ss -s | grep TCP'            # 动态观察增长趋势
ss -s > before.txt; stress-test; ss -s > after.txt   # 前后对比
diff before.txt after.txt                # 量化变化而不是凭感觉
ss -tnp state established | head         # 从摘要下钻到具体连接与进程

字段逐项读法

字段含义异常信号
Total各类套接字总数持续单调上升通常意味着泄漏
TCP estab已建立的连接数远超业务并发预期说明连接堆积
TCP closed已关闭但尚未回收的连接与 estab 一起看,判断回收是否及时
TCP orphaned无属主的套接字,进程已退出但连接还在持续增长基本可判定为应用收尾问题
TCP timewait主动关闭方留下的等待状态短连接服务上万属正常,需结合连接速率判断
TIME-WAIT 上万不一定是故障,短连接服务很常见。先对比连接速率与业务量,再决定要不要调 net.ipv4.tcp_tw_reuse 这类参数。
orphan 套接字增长通常指向应用泄漏(句柄没关),下一步用 ss -tnp 找到归属进程,再结合该进程的连接回收逻辑排查。

易错点

  • 把 timewait 数量大直接当成故障去调内核参数,掩盖了真正的短连接设计问题
  • 只看 ss -s 的汇总数字定位不到根因,异常计数必须下钻到 ss -tnp 找进程
  • 把 ss -s 与 netstat -s 混为一谈:后者是协议层计数器累计值,不是当前连接状态
  • 在容器里看到的是命名空间的连接情况,节点级统计要去宿主机查,别在错误的层级下结论

数据来源与参考

  • man 8 ss(iproute2 手册)

相关工具

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