где установить keep-alive в linux
#при простое этого времени, будет произведена проверка соединения /proc/sys/net/ipv4/tcp_keepalive_time #с каким интервалом делать проверку соединения /proc/sys/net/ipv4/tcp_keepalive_intvl #сколько делать попыток перед разрывом соединения /proc/sys/net/ipv4/tcp_keepalive_probes
Установить нужные значения можно следующими способами:
через procfs:
echo "3" > /proc/sys/net/ipv4/tcp_keepalive_probes
через sysctl:
sysctl -w net.ipv4.tcp_keepalive_probes=3
программно:
setsockopt( sock, SOL_SOCKET, SO_KEEPALIVE, 1, sizeof(int) ); setsockopt( sock, SOL_TCP, TCP_KEEPCNT, 20, sizeof(int) ); setsockopt( sock, SOL_TCP, TCP_KEEPIDLE, 180, sizeof(int) ); setsockopt( sock, SOL_TCP, TCP_KEEPINTVL, 60, sizeof(int) );