服务器网络连接突然暴增如何分析

当服务器的网络连接数突然从几百飙升到 25000,导致服务不可用时,这通常意味着某个服务或客户端出现了异常行为(如连接泄漏、DDoS 攻击、错误配置、死循环等)。要快速定位问题服务,可以按照以下步骤进行排查:

一、初步判断:确认是入站还是出站连接暴增

bash 复制代码
# 查看当前所有 TCP 连接数量及状态
ss -s
# 或
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

如果 ESTABLISHED 数量激增 → 很可能是正常业务连接堆积(比如后端响应慢,前端不断重试)。

如果 TIME_WAIT / CLOSE_WAIT 激增 → 可能是连接未正确释放(程序 bug 或资源不足)。

二、定位连接来源与目标

1.查看连接的远程 IP 和端口分布

bash 复制代码
# 查看连接最多的远程 IP
ss -tn | awk 'NR>1 {print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20

# 查看本地监听端口的连接数(按本地端口聚合)
ss -tn | awk 'NR>1 {print $4}' | cut -d: -f2 | sort | uniq -c | sort -nr | head -20

如果某一个 本地端口(如 8080、9090)连接数极高 → 该端口对应的服务很可能是"受害者"或"问题源"。

如果大量连接来自 少数几个 IP → 可能是恶意攻击或某个客户端异常。

如果连接分散但都指向同一个后端服务 → 说明上游服务调用下游时未复用连接(连接池配置错误)。

  1. 结合进程 ID 定位具体服务
bash 复制代码
# 查看每个进程打开的 TCP 连接数
lsof -iTCP -sTCP:ESTABLISHED | awk '{print $2}' | sort | uniq -c | sort -nr | head -10

# 或使用 ss + pid
ss -tnp | awk 'NR>1 {print $7}' | grep -o "pid=[0-9]*" | sort | uniq -c | sort -nr

然后根据 PID 查进程名:

bash 复制代码
ps -p <PID> -o pid,ppid,cmd,%mem,%cpu

三、结合日志和监控进一步分析

  1. 检查应用日志
    查看高连接端口对应服务的日志,是否有异常请求、超时、频繁重试、未关闭连接等。
    特别注意是否有 短连接风暴(大量短生命周期连接)或 连接未 close 的 warn/error。
  2. 检查连接池配置(如果是 Java/Go/Python 等服务)
    是否设置了合理的最大连接数?
    是否启用了 keep-alive?
    HTTP 客户端是否每次都新建连接而不是复用?
  3. 使用 APM 或链路追踪(如 SkyWalking、Jaeger、Zipkin)
    查看哪个服务的 入口 QPS 异常升高 或 出口连接数暴增。
    定位是 调用方 还是 被调用方 的问题。

四、临时缓解措施

限流:对异常 IP 或接口做限流(Nginx、iptables、API 网关)。

重启可疑服务:如果确认是某个服务连接泄漏,可临时重启。

调整内核参数(谨慎):

bash 复制代码
# 增加可用端口范围(针对出站连接多)
echo 'net.ipv4.ip_local_port_range = 1024 65535' >> /etc/sysctl.conf
# 减少 TIME_WAIT 保持时间
echo 'net.ipv4.tcp_fin_timeout = 30' >> /etc/sysctl.conf
sysctl -p

五、事后复盘建议

引入 连接数监控告警(如 Prometheus + Node Exporter 监控 node_netstat_Tcp_CurrEstab)。

对所有服务设置 最大并发连接限制。

审查客户端/服务端的 连接管理逻辑(尤其是 HTTP client、数据库连接池、gRPC client)。

总结排查路径:

连接暴增 → 看端口分布 → 看进程 PID → 看日志/代码 → 看调用链 → 定位问题服务

相关推荐
Lsetea5 小时前
curl指定CA目录仍报证书不受信任:--capath与OpenSSL rehash排查
运维·https·ssl·openssl·curl
优化Henry6 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
代码方舟7 小时前
数据科学风控实战:基于天远全能消金报告构建自动化信用评估网关
运维·人工智能·自动化
科力锐品牌君7 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
KaiwuDB7 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
福建佰胜张工8 小时前
A5E00839230西门子工业核心配件详解:参数、安装调试与故障运维全攻略
运维·网络·安全·自动化
Lancker8 小时前
chnroute-linux — 中国大陆 IP 段每日自动更新 + 「仅允许国内访问」落地
linux·运维·tcp/ip
辻弋2018 小时前
【无标题】
大数据·服务器·前端·搜索引擎·开源软件
天远Date Lab8 小时前
零信任架构实战:基于天远全能消金报告(标准版)构建自动化骑手资信评估网关
运维·人工智能·架构·自动化
赛博守夜人8 小时前
反舞弊系列之二十一:数据驱动型反舞弊体系搭建,如何利用ERP与财务数据构建“异常交易自动化风控看板”?
运维·自动化