VPS连接数突然打满怎么办?conntrack表、NAT状态与短连接风暴排查

从表项容量到NAT路径,区分连接跟踪耗尽与带宽故障
发布于
7

VPS连接数突然打满怎么办?conntrack表、NAT状态与短连接风暴排查

VPS突然出现新连接超时、容器请求失败,内核日志还提示nf_conntrack: table full,通常不是简单的“带宽用完”。Linux连接跟踪表负责记录经过防火墙和NAT的连接状态,短时间大量新连接、异常扫描、容器网络或UDP会话都可能让表项快速增长。

先确认是不是连接跟踪耗尽

sysctl net.netfilter.nf_conntrack_count
sysctl net.netfilter.nf_conntrack_max
dmesg -T | grep -i conntrack | tail -n 20
ss -s
cat /proc/net/nf_conntrack 2>/dev/null | head

重点看当前使用量与上限的关系、日志是否持续出现table full,以及连接状态的构成。只有看到表项逼近上限,才能把排查重点放到conntrack;如果主要是CPU、网卡队列或上游线路问题,调表容量并不能修复。

把来源拆成四类

来源 观察信号 下一步
业务短连接 ESTABLISHED很少,SYN/TIME_WAIT快速增长 检查HTTP keep-alive、连接池和重试策略
容器或NAT 宿主机连接正常,容器出口失败 核对转发路径、规则和容器网络模式
UDP会话 UDP表项多、持续时间长 确认应用超时与会话回收策略
异常流量 来源地址集中或端口扫描明显 先做入站最小化和上游安全组核验

低风险恢复顺序

  1. 保存ss -s、conntrack计数、接口流量和应用日志,建立故障时间线。
  2. 在云安全组和主机防火墙层面减少不必要的入站暴露,不要直接删除整套规则。
  3. 降低异常客户端重试和短连接并发,优先让应用复用连接、设置合理超时。
  4. 确认内存余量与云平台限制后,再评估调整nf_conntrack_max;修改前记录原值并准备回滚。

如果服务运行在Docker或其他容器网络中,要同时检查宿主机和容器命名空间可见的规则与统计。某些云平台会限制内核参数或网络模块,配置写入成功也不代表实际生效。

验收与防复发

恢复后持续观察连接跟踪使用率、SYN速率、TIME_WAIT趋势、容器错误率和应用重试次数。不要用一次清表或重启作为“已解决”的证据;需要确认在业务峰值下表项仍有余量,并且异常来源已经被隔离或修复。

连接跟踪排查应在自有或获授权的VPS上进行。不要通过放大连接、扫描第三方主机或绕过网络策略来验证容量。

本文由作者原创/授权发布于极跃圈(jiyueip.com),未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 / 600
0 讨论
热门最新
总结
暂无总结

暂无数据