NAT网关连接数限制需协同优化连接生命周期、资源分配与conntrack机制;建议单IP连接上限设为1.5–2万,扩容优先增加SNAT IP数量;调优超时值(established 3600s、time_wait 60s、fin_wait 30s);对健康检查等固定流量启用NOTRACK;同步扩大hashsize至131072以避免哈希冲突。

连接数限制是 NAT 网关在高并发场景下的关键瓶颈,不是简单调大就能解决,而是要结合连接生命周期、资源分配策略和底层跟踪机制协同优化。
合理设置每 IP 连接上限
单个公网 IP 的并发连接能力存在理论上限(通常约 64K),但实际应留出余量。建议将每 IP 最大连接数设为 1.5–2 万,避免端口耗尽或状态表异常堆积。若业务需更高连接密度,优先扩容 SNAT POOL 中的公网 IP 数量,而非强行突破单 IP 极限。
缩短连接超时时间释放资源
NAT 网关依赖内核 conntrack 表维护映射关系,长时间 idle 连接会持续占位。重点调整以下超时值:
- established 超时:从默认 5 天大幅压缩至 3600 秒(1 小时)
- time_wait 超时:设为 60 秒,加速端口回收
- fin_wait 超时:设为 30 秒,减少半关闭状态驻留
绕过非必要流量跟踪
健康检查、内部服务通信、监控探针等固定流量无需进入 conntrack 表,可显著降低表压力:
- 在 raw 表中添加 NOTRACK 规则,例如:
iptables -t raw -A PREROUTING -s 10.0.0.0/8 -j NOTRACK - 禁用不使用的 ALG 模块(如 nf_conntrack_sip、nf_conntrack_ftp),防止协议解析干扰连接跟踪
匹配哈希桶大小与连接规模
仅增大 nf_conntrack_max 不够,底层 hashsize 必须同步扩容,否则哈希冲突升高,性能反而下降:
- 设置 hashsize 为 2 的幂次,推荐起始值 131072
- 写入配置:
echo 'options nf_conntrack hashsize=131072' > /etc/modprobe.d/nf_conntrack.conf - 重启模块或重载内核后验证生效情况

















