linux tcp设置保活
时间: 2023-08-23 10:06:46 浏览: 251
linux tcp keepalive存活代码设置
TCP保活机制是指当TCP连接空闲一段时间后,为了检测连接是否仍然有效,TCP会发送一个探测包给对端,如果对端没有响应,则认为连接已经失效并关闭连接。在Linux中,可以通过TCP_KEEPIDLE、TCP_KEEPINTVL和TCP_KEEPCNT三个参数来设置TCP连接的保活机制。
具体方法如下:
1. 设置TCP_KEEPIDLE参数:表示连接在多长时间内没有数据传输时开始进行探测,即TCP保活定时器开始工作的时间。可以通过以下命令设置:
```
echo 7200 > /proc/sys/net/ipv4/tcp_keepidle
```
其中,7200表示秒数,即2小时。
2. 设置TCP_KEEPINTVL参数:表示每次发送探测包的时间间隔。可以通过以下命令设置:
```
echo 75 > /proc/sys/net/ipv4/tcp_keepintvl
```
其中,75表示秒数,即每隔75秒发送一次探测包。
3. 设置TCP_KEEPCNT参数:表示发送几次探测包后仍未得到响应就认为连接失效。可以通过以下命令设置:
```
echo 9 > /proc/sys/net/ipv4/tcp_keepcnt
```
其中,9表示发送9次探测包后仍未得到响应就认为连接失效。
以上三个参数都可以通过修改系统内核参数文件/etc/sysctl.conf来永久生效。例如:
```
net.ipv4.tcp_keepidle = 7200
net.ipv4.tcp_keepintvl = 75
net.ipv4.tcp_keepcnt = 9
```
修改完成后,执行以下命令使其生效:
```
sysctl -p
```
注意:以上参数仅对TCP连接起作用,对于UDP连接无效。
阅读全文