Warum frieren meine SSH-Sitzungen nach einiger Zeit ein? [geschlossen]

10

Entschuldigung, wenn dies nicht der richtige Ort ist, um diese Frage zu stellen.

Ich muss regelmäßig auf verschiedene Server ssh. Wenn ich von meinem Heimcomputer (Linux Mint) nach einiger Zeit der Inaktivität eine Verbindung über SSH herstelle, friert meine SSH-Shell ein und es gibt keine Möglichkeit, sie zurückzubekommen. Das einzige, was ich tun kann, ist '~. ", Das gibt mir zumindest meine einleitende Hülle zurück.

Wenn ich mich von anderen Standorten auf denselben Servern anmelde, gibt es kein Problem. Könnte das ein Problem mit meinem ISP sein? Wie kann ich dies weiter untersuchen?

Es ist wirklich ärgerlich, da ich nach dem Einfrieren die SSH-Verbindungen wiederherstellen, zurück zu meinem Standort navigieren und die Arbeit wieder aufnehmen muss. Vielen Dank

Fabio
quelle
Haben Sie eine statische IP-Adresse? Wenn nicht, könnte es sein, dass Ihr ISP Ihnen während der Sitzung eine andere IP-Adresse gegeben hat - überprüfen Sie Ihre Protokolle und sehen Sie.
user9517
Ich habe keine statische IP-Adresse. Wird überprüfen
Fabio

Antworten:

20

Ihr NAT löscht Ihren TCP-Socket nach einer gewissen Zeit der Inaktivität.

Ihr SSH-Client kann optional regelmäßig Noops an den Server senden, wodurch dieses Problem behoben wird. Fügen Sie dazu Folgendes hinzu ~/.ssh/config:

Host *
  ServerAliveInterval 60

Alternativ können Sie Ihr NAT so konfigurieren, dass Elemente nicht so schnell wie jetzt aus der Statustabelle verfallen.


Darüber hinaus sollten Sie für Ihre Sitzungen einen Terminal-Multiplexer verwenden - beispielsweise GNU Screen oder tmux. Mit beiden können Sie Ihre Sitzung wiederherstellen, falls die Verbindung getrennt wird.

EEAA
quelle
Entweder das NAT oder eine schmerzhaft falsche Firewall im Pfad, die inaktive TCP-Sitzungen löschen möchte. Es gibt keinen Grund, inaktive TCP-Sitzungen abzubrechen, außer Speichermangel, um den Status beizubehalten. Dies sollte jedoch sehr selten vorkommen, wenn Sie die Größe und Konfiguration Ihrer Geräte korrekt festlegen. Es ist eine gute Funktion zu wissen, ob Ihr Provider / Administrator kompetent ist (oder nicht).
Zerodeux
0

In meinem Fall war das Problem in der großen MTU-Größe. Sie können die MTU auf dem Router ändern, wenn Sie NAT verwenden, aber ich ändere die MTU auf dem Server:

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

Unter Windows können Sie diesen Schlüssel auch erhöhen:

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