por que minhas sessões ssh congelam depois de algum tempo? [fechadas]

10

Desculpas se este não é o lugar certo para fazer esta pergunta.

Eu regularmente preciso ssh para servidores diferentes. Agora, na minha máquina doméstica (linux mint), quando eu conecto via ssh, após algum tempo de inatividade, meu shell ssh congela e não há como recuperá-lo. A única coisa que posso fazer é '~. ", Que pelo menos me devolve meu shell inicial.

Quando eu faço login de outros locais nos mesmos servidores, não há problema. Isso poderia ser um problema com meu ISP? Como posso investigar mais sobre este?

É realmente irritante, pois tenho que restabelecer as conexões ssh após o congelamento, navegar de volta para onde eu estava e retomar o trabalho. obrigado

Fabio
fonte
Você tem um endereço IP estático? Caso contrário, pode ser que seu ISP tenha fornecido um endereço IP diferente no meio da sessão - verifique seus logs e veja.
precisa saber é o seguinte
Eu não tenho um endereço IP estático. Vou verificar
Fabio

Respostas:

20

Seu NAT está descartando seu soquete TCP após um período de inatividade.

Seu cliente ssh pode opcionalmente enviar noops periódicos para o servidor, eliminando esse problema. Para fazer isso, adicione isso ao seu ~/.ssh/config:

Host *
  ServerAliveInterval 60

Como alternativa, reconfigure seu NAT para não expirar os itens fora de sua tabela de estado tão rapidamente quanto agora.


Além do acima, você deve usar um multiplexador de terminal para suas sessões - algo como GNU Screen ou tmux. Com qualquer um desses, você pode recuperar sua sessão no caso de ser desconectado.

EEAA
fonte
O NAT ou qualquer firewall dolorosamente errado no caminho que gosta de descartar sessões TCP inativas. Não há motivo para descartar sessões TCP inativas, além da falta de memória para manter os estados, mas isso deve acontecer muito raramente se você dimensionar e configurar corretamente seus equipamentos. É um bom recurso saber se o seu provedor / administrador é competente (ou não).
zerodeux 24/01
0

No meu caso, o problema estava no tamanho grande da MTU. Você pode alterar o MTU no roteador se estiver usando o NAT, mas eu altero o MTU no servidor:

sudo /sbin/ifconfig eth0 mtu 1036
sudo /etc/init.d/networking restart

No Windows, você também pode aumentar esta chave:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpMaxDataRetransmissions"=dword:00000010
Vasin Yuriy
fonte