Putty: 'Server hat die Netzwerkverbindung unerwartet geschlossen'


11

Putty 'Server unerwartet geschlossene Netzwerkverbindung' Ich habe die 'Server unerwartet geschlossene Netzwerkverbindung' erhalten (siehe /superuser/735824/putty-ends-to-an-unexpected-error-and-vnc- show-terminal-with-error und "Server unerwartet geschlossene Netzwerkverbindung" ), aber es ist nicht mit einem Neustart verbunden, die Verbindung schlägt nur unerwartet fehl und damit läuft der Webserver (Apache) vom Linux-Server. Ich verwende Putty über Windows 7, um eine Verbindung zu einem Raspberry Pi herzustellen, auf dem Raspbian ausgeführt wird. Irgendwelche Ideen, was schief gehen könnte?

Antworten:


13

Eine im Leerlauf befindliche PuTTY-Sitzung wird zu einem vom Hostserver festgelegten Zeitpunkt getrennt. Versuchen Sie, Keep-Alives in PuTTY zu aktivieren. Dies führt dazu, dass PuTTY regelmäßig Null-SSH-Pakete an den Remote-Host sendet, wodurch verhindert wird, dass die Sitzung eine Zeitüberschreitung aufweist.

Der PuTTY-Client kann so konfiguriert werden, dass immer eine Verbindung hergestellt wird, bei der aufgrund von Inaktivität keine Zeitüberschreitung auftritt. Gehen Sie folgendermaßen vor, um eine neue Keep-Alive-Verbindung zu erstellen und zu speichern:

  1. Öffnen Sie die PuTTY-Anwendung und rufen Sie das Optionsfeld (mit der Bezeichnung "Kategorie") links im Fenster auf.
  2. Wählen Sie den Eintrag "Verbindung" aus (klicken Sie darauf).
  3. Ändern Sie im Bereich "Senden von Nullpaketen, um die Sitzung aktiv zu halten" rechts den Standardwert von "Sekunden zwischen Keepalives" von 0 (Ausschalten) auf 1800 (30 Minuten).
  4. Aktivieren Sie das Kontrollkästchen "TCP-Keepalives aktivieren (Option SO_KEEPALIVE)". Hinweis: Diese Option ist in älteren Versionen des PuTTY-Clients möglicherweise nicht verfügbar.
  5. Wählen Sie oben links im Optionsfeld "Sitzung" aus (klicken Sie darauf).
  6. Geben Sie im Feld "Hostname (oder IP-Adresse)" den Zielhostnamen oder die IP-Adresse ein (z. B. "destination.ipaddress.here.com" oder "192.168.1.1").
  7. Geben Sie im Texteingabefeld "Gespeicherte Sitzungen" einen Namen für die Sitzung ein (z. B. "Gespeicherte Sitzung").
  8. Wählen Sie "Speichern".

Um die geänderten Sitzungseinstellungen zu verwenden, wählen Sie sie aus der Liste "Gespeicherte Sitzungen" aus und klicken Sie auf die Schaltflächen "Laden" und "Öffnen".

Wenn Ihre verbundenen Sitzungen immer noch eine Zeitüberschreitung aufweisen, geben Sie eine niedrigere Anzahl von Sekunden in den Wert "Sekunden zwischen Keepalives" ein.


Auch das ist falsch. Bei einer TCP-Verbindung tritt keine Zeitüberschreitung auf. Wenn das End-to-End - Prinzip durch NAT oder dergleichen beeinträchtigt wird, die Anschlusszuordnungen auf diesen Geräten möglicherweise eine Zeitüberschreitung. SSH wird standardmäßig keine Zeitüberschreitung aufweisen. Bei einer ordnungsgemäßen Internetverbindung bleibt eine inaktive SSH-Verbindung auf unbestimmte Zeit geöffnet.
Daniel B

Ssh bietet zwei Arten von Keep-Alives an: TCP Keep-Alives und Ssh Keep-Alives. TCP bietet einen Mechanismus zum automatischen Schließen von Verbindungen, die aufgrund einer Zeitüberschreitung als tot gelten. Es geht darum, ein Flag im Socket zu aktivieren.
Raúl Salinas-Monteagudo

Ich habe die Zahl gesenkt und bin wieder bei 0 und werde immer noch nicht funktionieren. Gibt es dafür eine andere Lösung?
mirmiqdad

1

Der Server könnte gehärtet sein. Der Grund könnte sein, dass a) die Client-IP möglicherweise nicht in / etc / allowhosts konfiguriert ist und / oder b) die Unix / Linux-Firewall-Regel / selinux dies nicht zulässt.


0

Ich hatte lange Zeit das gleiche Problem. Ich verwende Putty, um eine Verbindung zu AWS Linux-Instanzen (einige Remote-Cloud-Server) herzustellen. Ich habe über das Beheben mit keepAlives auf mehreren Seiten mehrere Seiten gelesen und es versucht, aber ohne Erfolg.

Und erst gestern, als ich nach einigen Farbschemaeinstellungen suchte, fand ich Folgendes: https://github.com/jblaine/solarized-and-modern-putty

Neben der Anpassung der Farben des Terminals werden einige vernünftige Standardeinstellungen angewendet (wie bei den oben genannten KeepAlives auf 59 Sekunden plus andere), und wissen Sie was? Ich hatte zwei ganze Tage lang keine geschlossene Verbindung.


-1

Sie waren länger im Leerlauf als das Sitzungszeitlimit auf dem Remote-Gerät, sodass die Sitzung geschlossen wurde und PuTTy dies nicht erwartet hatte.


1
Nicht genau: Wenn Sie sich abmelden (oder zwangsweise abgemeldet werden), wird die Verbindung ordnungsgemäß beendet. Was hier passiert ist, ist, dass die zugrunde liegende TCP-Verbindung irgendwie geschlossen wurde ("Verbindung durch Peer zurückgesetzt"), daher "unerwartet".
Daniel B

Wo sehen Sie "Zurücksetzen"? Für mich ist die offensichtliche Bedeutung von "unerwartet geschlossen", dass TCP-Schließen auf SSH-Ebene nicht erwartet wird, und Tests bestätigen dies: Wenn ich meine Shell verlasse oder töte, erhalte ich mehrere SSH-Pakete (ich ass-u-me CHANNEL_EOF, CHANNEL_CLOSED und / oder DISCONNECT), dann FIN-Austausch und Putty-Pops "vom entfernten Host geschlossen"; OTOH Wenn ich -9 mein sshd töte, bekomme ich nur TCP FIN Exchange und "Server unerwartete geschlossene Netzwerkverbindung". Wenn es RST wäre (und nicht bei SYN, wo es abgelehnt bedeutet), würde ich eine Middlebox vermuten, die mit Ihrem anderen Kommentar übereinstimmt.
Dave_thompson_085

@ dave_thompson_085 Du hast recht, ich habe FIN und RST verwechselt. Andernfalls sagt KiTTY "Software verursachte Verbindungsabbruch".
Daniel B
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.