首页/网络/网络排障速查/连接数暴涨的来源分布判定

连接数暴涨的来源分布判定

连接数短时间暴涨,先分方向(入站/出站)、来源(单 IP 还是分散)、状态(SYN-RECV/ESTAB/TW),再判断是攻击、爬虫还是自身程序的重试风暴。

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

为什么要先看分布

连接数暴涨本身不是结论:5000 条连接来自一个 IP,与来自 5000 个分散 IP,处置方式完全不同。判定的三个维度是方向(入站还是出站)、来源(集中还是分散)、状态(ESTABLISHED / SYN-RECV / TIME-WAIT)。方向说明是别人连你还是你连别人,来源区分单点异常与分布式行为,状态则能直接把结论指向半连接攻击、连接池爆炸或正常的短连接回收。

基本信息

适用平台Linux(ss 为 iproute2 自带);Windows 用 Get-NetTCPConnection 聚合
核心命令ss -Htan(-H 去掉表头便于 awk 统计)
统计手法awk 取列 + sort | uniq -c | sort -rn 找 Top 来源
关键状态established、syn-recv、time-wait、fin-wait-2
处置前动作先留存 ss 快照、抓包与访问日志,再决定限速、封禁或改代码

分布形态与倾向判断

形态典型特征倾向判断
单 IP 高连接一个来源占掉大半连接数爬虫、未限速的压测、单点攻击
大量分散 IP 同目标来源极度分散且端口集中分布式扫描或 DDoS
本机大量外连同目标出方向连接堆积程序重试风暴或连接池爆炸
SYN-RECV 占比高半连接队列被占满SYN flood,或握手回包被丢、服务端处理不过来
TIME-WAIT 占比高短连接密集正常回收,或客户端未复用连接

典型使用场景

  • 监控告警「连接数超阈值」,需要判断是攻击还是自身程序问题
  • 服务响应变慢并伴随连接数上涨,确认是否重试风暴导致雪崩
  • 压测后复盘:区分正常并发连接与异常堆积
  • 排查半连接队列溢出:确认 synrecv 数量与内核参数是否需要调整
  • 安全事件响应:快速定位 Top 来源 IP 并保留证据

分布分析

分布分析
ss -Htan state established | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20   # 已建立连接的 Top 来源
ss -Htan state syn-recv | wc -l                                        # 半连接数量
ss -Htan | awk '{print $1}' | sort | uniq -c | sort -rn                # 各状态计数排行
ss -Htan state established | awk '{print $4}' | cut -d: -f2 | sort | uniq -c | sort -rn | head   # 按本地端口看哪个服务吃连接
netstat -s | grep -iE 'listen|overflow|retransmit'                     # 内核侧监听队列溢出与重传统计
处置前先留存证据:ss 快照、抓包和访问日志。封 IP 前确认它不是自家监控、上游节点或企业出口地址,误封自有链路比不封代价更大。

易错点

  • 只看总数不看分布:同一个数字背后可能是单点爬虫,也可能是分布式攻击,两种处置互相无效
  • 先封 IP 再看日志:把自家监控或上游节点封掉,引发新的告警风暴
  • 把 SYN-RECV 高当成本机性能问题:也可能是握手回包被丢或服务端 accept 队列太小,方向判断错会白加机器
  • 忽略出方向连接:只统计入站连接,漏掉本机程序向外重试风暴这一常见原因

数据来源与参考

  • man 8 ss
  • OWASP:DoS 缓解(连接层)

相关工具

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