Eu tenho uma pequena rede local que pega carona em um WiFi cativo e uso ssh
no OS X com -oServerAliveInterval=240
PuTTY 0.62 no Windows 7 Professional para estabelecer conexões com meu Linode, Hetzner e outros servidores.
Com PuTTY, seleciono Connection
→ Sending of null packets to keep session active
a 240. O Enable TCP keepalives (SO_KEEPALIVE option)
está desativado, conforme os padrões.
Quando minha internet fica temporariamente inativa por cerca de um minuto (é necessário se autenticar novamente no portal cativo), o PuTTY quase sempre perde todas as sessões abertas de ssh que eu tenho, e especialmente aquelas onde havia algum tipo de atividade, mas o OpenSSH no OS X nunca perde nenhuma sessão desde que minha internet volte a funcionar em cerca de um minuto ou dois, mesmo que eu tente digitar algo no ssh e não veja resposta por 60 segundos inteiros, até que minha conexão esteja ativa novamente. (Portanto, tenho certeza de que os estados NAT sempre são preservados.)
Posso parar o Windows / PuTTY de descartar preventivamente boas conexões?
Parece-me que SO_KEEPALIVE ou algo parecido está realmente ativado por padrão no Windows, e o tempo limite para detectar conexões obsoletas é muito pequeno. Gostaria de aumentá-lo para algo mais do que alguns segundos, da mesma forma que o OS X é imune a essas breves interrupções temporárias, desde que a interrupção seja de apenas algumas centenas de segundos e esteja abaixo do valor de -oServerAliveInterval
(times ServerAliveCountMax
).
mosh
é uma alternativa melhor.)