要修改探测次数或探测间隔,可将值写入/ proc文件系统,例如
echo 600 > /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
请注意,这些值对于系统上所有启用了keepalive的套接字都是全局的。设置setsockopt时,您还可以逐个套接字覆盖这些设置,请参见链接文档的第4.2节。
您不能使用keepalive从用户空间“检查”套接字的状态。取而代之的是,内核在强制远程端确认数据包以及确定套接字是否变坏方面更具攻击性。当您尝试写入套接字时,如果keepalive确定远端已关闭,则将获得SIGPIPE。



