A algunos enrutadores demasiado entusiastas les gusta abandonar las conexiones TCP que están inactivas durante demasiado tiempo (es decir, no transmiten ningún dato). Podría ser porque asumen que el usuario solo usa cosas como HTTP, donde la conexión a menudo se cierra después de que se completa una sola consulta.
Asumiendo OpenSSH, use el ClientAliveInterval
y ClientAliveCountMax
directivas en sshd_config
, o equivalentemente ServerAliveInterval
y ServerAliveCountMax
en la configuración del lado del cliente (~/.ssh/config
o /etc/ssh/ssh_config
) para habilitar los paquetes keepalive a nivel de protocolo.
En realidad, están destinados a detectar si el host remoto se ha ido, pero dado que hacen que se envíen mensajes cuando la conexión está inactiva, también funcionan para evitar que los dispositivos externos consideren que la conexión está inactiva.
*AliveInterval
intervalo después del cual el cliente/servidor envía una consulta al control remoto y *AliveCountMax
establece el número de consultas sin respuesta después de las cuales el cliente/servidor desconecta la conexión como inactiva.
Algo como estos valores debería hacer:
ClientAliveInterval 15
ClientAliveCountMax 4