| 状态 | TIME_WAIT(主动关闭方等待 2MSL) |
|---|---|
| 典型现象 | 重启即报 EADDRINUSE;大量 TIME_WAIT 堆积 |
| 关键参数 | SO_REUSEADDR、net.ipv4.tcp_tw_reuse、tcp_fin_timeout |
| 易踩坑 | tcp_tw_recycle 已在 Linux 4.12 移除,且对 NAT 场景有害 |
服务进程退出时若由它主动关闭连接,TIME_WAIT 记在操作系统而非进程上:这就是"进程没了端口还占着"的真相;服务端 bind 前设置 SO_REUSEADDR 属于常规操作。
核对与处置
核对与处置
ss -tan state time-wait | head -20
cat /proc/sys/net/ipv4/tcp_tw_reuse # 客户端侧端口复用开关
# 不要迷信 tcp_tw_recycle:4.12 起已移除