如何在 Linux 中更改 Keep Alive 参数?
负责 TCP Keep Alive 的文件是
/proc/sys/net/ipv4/tcp_keepalive_time /proc/sys/net/ipv4/tcp_keepalive_intvl /proc/sys/net/ipv4/tcp_keepalive_probes
这些已经有一些预定义的默认值,我们可以使用以下内容进行检查
# cat /proc/sys/net/ipv4/tcp_keepalive_time 7200 # cat /proc/sys/net/ipv4/tcp_keepalive_intvl 75 # cat /proc/sys/net/ipv4/tcp_keepalive_probes 9
前两个文件中的数值以秒为单位定义,第三个只是一个数值。
- 现在上面的 3 个文件解释了在 7200 秒后发送第一个网络数据包(keepalive 探测)并在收到响应之前发送九次。
- 因此,如果机器在完成 9 次之前收到响应,我们将被困在网络上,之后我们将断开连接。
- 第二个保活探测将在 75 秒后发送,并且将遵循与上述相同的过程。
- 同样,第三次探测将在 75 秒后开始。
我们应该根据我们的要求更改这些默认值。
不允许使用 vi 编辑器更改值,因此这是我们可以遵循的另一种方法
# echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time # echo 60 > /proc/sys/net/ipv4/tcp_keepalive_intvl # echo 20 > /proc/sys/net/ipv4/tcp_keepalive_probes
在这里,我们更改了这些值,因此现在将在 300 秒后发送第一个 keepalive 探测,例如:5 分钟和 20 个探测将在网络断开连接之前发送。
下一个数据包将在 60 秒后再次发送,例如:1 分钟,因此这显然可以帮助解决我的网络断开连接问题。
现在我需要在我的机器上刷新这些设置
刷新 sysctl 内核参数
# sysctl -p
查看所有内核参数
# sysctl -a
重新启动机器一次以使更改生效并使用这些新参数加载内核。
日期:2020-06-02 22:17:16 来源:oir作者:oir