Estou usando o seguinte comando em um cliente para o tunelamento de porta:
autossh -M 20000 -4 -N -f -R 18822:localhost:22 <user>@<vps-ip>
Às vezes, o cliente perderia a conexão ou a energia por um curto período e, quando estiver on-line novamente, o processo SSH no VPS ainda estará ativo. Um novo processo aparece quando o cliente se conecta novamente, mas o encaminhamento de porta não está funcionando (suponho que o primeiro processo ainda ocupe a porta).
Eu achei que poderia corrigir isso fazendo as seguintes alterações:
Adicionado ao final do VPS ' /etc/ssh/sshd_config
:
ClientAliveInterval 90
ClientAliveCountMax 2
Adicionado ao final do /etc/ssh/ssh_config
do cliente:
ServerAliveInterval 90
ServerAliveCountMax 2
De esta resposta e do meu entendimento geral desses recursos, fiquei com a impressão de que isso tentaria < strong> 2 vezes para enviar um pacote nulo a cada 90 segundos, e se isso falhar, então, após 180 segundos, a conexão morrerá devido a um "cano quebrado", o SSH processo no VPS será morto e a porta pode ser usada novamente pelo cliente.
No entanto, passaram-se 20 minutos desde que o cliente desligou e o processo SSH ainda existe no VPS, ocupando a porta. ( Atualização: O processo desapareceu após ~ 25-30 minutos)
O meu entendimento do erro acima está errado? Como eu poderia verificar se a conexão ainda está ativa e fechá-la se o cliente não responder mais?