首页/网络/网络排障速查/tcp_tw_reuse 与本地端口耗尽处置

tcp_tw_reuse 与本地端口耗尽处置

客户端短连接打满本地端口的处置组合:开启 tcp_tw_reuse 复用时序安全的 TW 连接、扩大 ip_local_port_range、并让应用改用连接池;tcp_tw_recycle 已从内核移除。

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

现状核对

现状核对
sysctl net.ipv4.tcp_tw_reuse net.ipv4.tcp_timestamps net.ipv4.ip_local_port_range
ss -s | grep -i timewait

sysctl 配置(写文件后 sysctl -p)

sysctl 配置(写文件后 sysctl -p)
# /etc/sysctl.d/99-net-tune.conf
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65000
net.ipv4.tcp_max_tw_buckets = 65536
tcp_tw_reuse 只对客户端主动发起的连接生效,且依赖 tcp_timestamps(默认开启);服务端被动回收侧不受它帮助。老文档里的 tcp_tw_recycle 会造成 NAT 环境丢包,内核 4.12 起已删除,不要再开。

易错点

  • 照抄旧文档开启 tcp_tw_recycle:新内核参数不存在,命令直接报错
  • 只调内核参数不改连接池:QPS 上量后问题原样复现

数据来源与参考

  • Linux 内核文档:ip-sysctl(tcp_tw_reuse)
  • Linux 4.12 变更说明:移除 tcp_tw_recycle

相关工具

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