TCP 的默认 Keepalive 选项并不是在所有操作系统中都相同,具体的时间间隔和配置可能会有所不同。以下是一些常见操作系统的默认 TCP Keepalive 设置:
Linux
- Keepalive Time(首次探测时间): 默认值通常为 7200秒(2小时)。
- Keepalive Interval(后续探测间隔): 默认值通常为 75秒。
- Keepalive Probes(探测次数): 默认值通常为 9次。
Windows
- Keepalive Time: 默认值一般为 7200秒(2小时)。
- Keepalive Interval: 默认值通常为 1秒。
- Keepalive Probes: 默认为 5次。
macOS
- 一般与 Linux 相似,默认的 Keepalive 设置也多为:
- Keepalive Time: 7200秒
- Keepalive Interval: 75秒
- Keepalive Probes: 9次
如何查看和设置
在 Linux 系统中,你可以使用 sysctl
命令查看和修改这些参数。例如:
# 查看当前的设置
sysctl net.ipv4.tcp_keepalive_time
sysctl net.ipv4.tcp_keepalive_intvl
sysctl net.ipv4.tcp_keepalive_probes
# 修改设置 (例如,将 keepalive time 改为 600 秒)
sudo sysctl -w net.ipv4.tcp_keepalive_time=600
在 Windows 中,可以通过注册表进行调整:
- 打开注册表编辑器 (
regedit
)。 - 导航到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
。 - 找到或创建以下 DWORD 值:
TcpTimedWaitDelay
:定义连接进入 TIME_WAIT 状态的最短持续时间。TcpKeepAliveInterval
: 保活包发送之间的间隔,单位毫秒。TcpKeepAliveTime
: 多久后开始发送保活包,单位毫秒。
请根据实际需求修改这些设置,但需要注意,不同环境下合理地设置这些参数非常重要,以避免网络资源浪费或不必要的连接干扰。
内容由零声教学AI助手提供,问题来源于学员提问