我们在现场运行一个包含大量嵌入式设备的服务,它们的 TCP 堆栈有点问题,有时不能正确关闭连接,导致某些连接在服务器上卡在 FIN-WAIT-2 状态。
通常情况下,这些连接会根据 超时/proc/sys/net/ipv4/tcp_fin_timeout
,但我们的连接在 中一分钟后仍然可见ss
。即使重新启动该过程也无法摆脱它们,唯一的方法似乎是重新启动。
当然,长期解决方案是修复客户端以正确关闭连接,但我担心连接没有超时,即使它们应该超时。是什么原因造成的?我该如何摆脱无用的连接?
我们在现场运行一个包含大量嵌入式设备的服务,它们的 TCP 堆栈有点问题,有时不能正确关闭连接,导致某些连接在服务器上卡在 FIN-WAIT-2 状态。
通常情况下,这些连接会根据 超时/proc/sys/net/ipv4/tcp_fin_timeout
,但我们的连接在 中一分钟后仍然可见ss
。即使重新启动该过程也无法摆脱它们,唯一的方法似乎是重新启动。
当然,长期解决方案是修复客户端以正确关闭连接,但我担心连接没有超时,即使它们应该超时。是什么原因造成的?我该如何摆脱无用的连接?