Ich besitze ein kleines lokales Netzwerk, das auf einem eigenen WLAN aufsteckt, und verwende ssh
unter OS X -oServerAliveInterval=240
und PuTTY 0.62 unter Windows 7 Professional, um Verbindungen zu Linode, Hetzner und anderen Servern herzustellen.
Mit PuTTY wähle ich Connection
→ Sending of null packets to keep session active
bis 240. Das Enable TCP keepalives (SO_KEEPALIVE option)
ist standardmäßig ausgeschaltet.
Wenn mein Internet für ungefähr eine Minute vorübergehend außer Betrieb ist (ich muss mich im Captive-Portal erneut authentifizieren), verliert PuTTY fast immer alle offenen SSH-Sitzungen, die ich habe, und insbesondere diejenigen, bei denen irgendeine Aktivität stattgefunden hat, außer OpenSSH unter OS X Verliert nie eine Sitzung, solange mein Internet innerhalb von ein oder zwei Minuten wiederhergestellt ist, auch wenn ich tatsächlich versuche, etwas in ssh einzugeben, und die gesamten 60 Sekunden lang keine Antwort sehe, bis meine Verbindung wieder aktiv ist. (So weiß ich sicher, dass NAT-Zustände immer erhalten bleiben.)
Kann ich Windows / PuTTY daran hindern, gute Verbindungen zu verwerfen?
Es scheint mir, als ob SO_KEEPALIVE oder so in Windows standardmäßig aktiviert ist und die Zeitüberschreitung für die Erkennung veralteter Verbindungen viel zu gering ist. Ich würde es gerne auf etwas mehr als ein paar Sekunden erhöhen, ähnlich wie OS X gegen diese kurzen vorübergehenden Ausfälle immun ist, solange der Ausfall nur ein paar hundert Sekunden beträgt und unter dem Wert von -oServerAliveInterval
(times ServerAliveCountMax
) liegt.
mosh
ist dies eine bessere Alternative.)