我遇到了一个关于 TCP socket keepalive 的问题。
TCP keep-alive 在 socket 连接后启用和配置,系统有自己的 TCP keep-alive 配置。
'ss -to' 可以显示连接的存活信息。
网络接口是一个 PPPOE 设备,如果我们 ifup 接口,它将获得一个新的 ip 地址。并且旧的 TCP 连接将保持建立,直到 keep-alive 超时。
但有时 'ss -to' 表明 tcp 连接变为 'persist',需要很长时间(大约 15 分钟)才能关闭。
以下是“ss -to”的结果:
ESTAB 0 591 172.0.0.60:46402 10.184.20.2:4335 timer:(persist,1min26sec,14)
源地址为“172.0.0.60”,但网络接口的实际地址已更新为“172.0.0.62”。
这是 'ss -to' 的正确结果:
ESTAB 0 0 172.0.0.62:46120 10.184.20.2:4335 timer:(keepalive,4.480ms,0)
我不知道为什么“计时器”被更改为“持久”,这使得保持活动被禁用。