2011-06-09 02:12:42 +0000 2011-06-09 02:12:42 +0000
84
84

PuTTY-Netzwerkfehler: Software verursachte Verbindungsabbruch

Ich habe ein seltsames Problem: Wenn ich PuTTY mit SSH verwende und eine Verbindung zu einem Linux-Server herstelle, der in VMware auf meinem lokalen Windows 7 gehostet wird, erhalte ich oft die Fehlermeldung "Network error: Software caused connection abort" und dann ist das PuTTY-SSH-Fenster inaktiv. Normalerweise kann ich mich mit PuTTY in den Server einloggen und etwas tun, aber nach einer zufälligen Zeit (etwa ein oder zwei Minuten) erhalte ich diesen Fehler. Und manchmal kann ich mich sogar nicht einloggen und bekomme einen Fehler mit dem Hinweis auf eine Zeitüberschreitung.

Ich vermute, dass mit meinem VMware Player etwas nicht stimmt, weil ich einen anderen Ubuntu-Desktop als Code-Repository-Server in VMware gehostet habe, und er hat meistens einen Zeitüberschreitungsfehler, wenn ich ein SVN-Update/Commit durchführe. Ich vermute jedoch auch, dass Windows 7 einige Macken hat, weil der gleiche Ubuntu-Server, der in VMware als Code-Repository-Server gehostet wird, unter Windows Vista sehr gut funktioniert! Es scheint, daß all die schlimmen Dinge passieren, nachdem ich von Windows XP zu Windows Vista und dann zu Windows 7 gewechselt habe!

Was könnte der Grund für dieses Problem sein und wie kann es behoben werden?

Ergänzung :

Ich habe eine Google-Suche durchgeführt und alle Methoden zur Hilfe angewendet, einschließlich:

  1. Aktivieren von sshd TCPKeepAlive
  2. Setzen Sie sshd ClientAliveInterval auf 900 und ClientAliveCountMax auf 3
  3. Setzen Sie die PuTTY-Verbindungseinstellung ‘Sekunden zwischen Keepalives’ auf 5.

Aber die funktionieren alle nicht! Und die SSH-Sitzung in PuTTY bricht nach einiger Zeit immer noch ab!

Ich habe sowohl die Linux-Server-Firewall als auch die Windows 7-Client-Firewall abgeschaltet, aber die Anmeldung wird immer noch abgebrochen! Es ist wirklich ärgerlich!

Es scheint, dass ich mich manchmal einloggen kann, aber manchmal wird die Anmeldung abgebrochen! Ich weiß wirklich nicht, warum. Es macht mich wahnsinnig!

Eine Sache, die ich erwähnen muss, ist, dass ich, wenn ich PuTTY SSH verwende, eine Verbindung zu einem entfernten Server herstelle, und es ist alles OK!

Als ich mich nicht einloggen konnte, schlug auch ping fehl! Aber wie kann das passieren? Ich verwende VMware Player, um den Linux-Server auf meinem lokalen Rechner zu hosten!

Antworten (12)

60
60
60
2012-06-25 18:52:15 +0000

Nur Windows XP oder älteres Betriebssystem:

Ich habe diese Antwort vor 9 Jahren für Windows XP geschrieben, die Putty-Software ist 21 Jahre alt, und daher ist diese Antwort für historische Zwecke nützlich. Window’s aktuelles Smartphone-basiertes Zune-OS für Desktop hat Putty auf Netzwerkebene gebrochen, um alle Ein- und Ausgangspunkte, die nicht Teil des kostenpflichtigen Azure-Vendor-Toolstacks sind, zu verwirren.

Putty hat eine Funktion, die versucht, dieses Problem zu beheben:

Network Error: Software caused connection abort
  1. Starten Sie Putty
  2. Laden Sie Ihre Verbindungseinstellungen, wenn Sie sie gespeichert haben
  3. Klicken Sie auf “Verbindung”
  4. In dem Abschnitt, in dem es heißt “Senden von Null-Paketen, um die Sitzung aktiv zu halten”, ändern Sie ihn auf 5 Sekunden. 300 Sekunden sind möglicherweise besser, wenn Netzwerkausfälle Ihr Problem sind, lesen Sie weiter unten für weitere Einzelheiten.

Wie Keepalives die Trennung mit Putty verhindern:

Einige Netzwerk-Router und Firewalls müssen alle Verbindungen durch sie hindurch verfolgen. Normalerweise gehen diese Firewalls davon aus, dass eine Verbindung tot ist, wenn nach einem bestimmten Zeitintervall keine Daten in beide Richtungen übertragen werden. Dies kann dazu führen, dass PuTTY-Sitzungen unerwartet von der Firewall geschlossen werden, wenn einige Zeit lang kein Datenverkehr in der Sitzung zu sehen ist.

Mit der Keepalive-Option (‘Sekunden zwischen Keepalives’) können Sie PuTTY so konfigurieren, dass es in regelmäßigen Abständen Daten durch die Sitzung sendet, und zwar so, dass die eigentliche Terminalsitzung nicht unterbrochen wird. Wenn Sie feststellen, dass Ihre Firewall untätige Verbindungen unterbricht, können Sie versuchen, einen Wert ungleich Null in dieses Feld einzugeben. Der Wert wird in Sekunden gemessen; wenn Ihre Firewall z.B. Verbindungen nach zehn Minuten unterbricht, sollten Sie 300 Sekunden (5 Minuten) in das Feld eingeben.

Problem mit Hilfe von Putty Autologin und “Bildschirm”-Tool reduzieren

Putty kann nicht mit einem beschissenen WLAN umgehen, das minutenlang die Verbindung verliert. Ein Workaround ist die Verwendung von Autologin und “Bildschirm”-Tool.

Es ist ein nicht triviales Problem für Putty, Ihr Terminal nach einem minutenlangen Verlust der Internetverbindung wieder zu synchronisieren. Sie laufen Gefahr, dass man in der Mitte während eines Ausfalls angreift. Sie müssten sich ohnehin neu authentifizieren, um sicherzugehen. Putty zwingt Ihnen das nicht auf, es lässt Sie einfach fallen.

Verwenden Sie also Autologin, damit Putty sich in Ihrem Namen automatisch einloggen kann.

  1. Erzeugen Sie einen privaten Schlüssel mit dem puttygen tool auf dem Computer, mit dem Sie kitten.
  2. Fügen Sie den öffentlichen Schlüssel in Ihr /home/youruser/.ssh/authorized_keys auf der Serverseite ein, auf dem Server, auf dem Sie sich mit Kitt anmelden.
  3. Machen Sie den privaten Schlüssel für Putty in den Putty-Einstellungen Connection->SSH->Auth zugänglich. 4. Fügen Sie den privaten Schlüssel hinzu, indem Sie die private Schlüsseldatei unter “
  4. speichern Sie die Verbindungseinstellungen von putty.

Dann könnten Sie auf Ihre Verbindung durch putty doppelklicken, und sie sollte Sie direkt zum Terminal führen, ohne dass Sie Benutzername/Passwort eingeben müssen.

Jetzt können Sie also eine Anmeldung an putty auf dieser Verbindung mit einer Tastaturkombination wie F6 anhängen. Wenn also das WiFi schlecht wird und Sie fallen gelassen werden. Sie drücken F6, und schon sind Sie wieder eingeloggt.

ABER Sie verlieren trotzdem den Zustand Ihres Terminals! Wie kann man das beheben? Verwenden Sie das Programm "screen”. Erstellen Sie einen neuen Bildschirm, indem Sie “screen” eingeben. Ein neuer Bildschirm wird erstellt.

Wenn Sie rausgeschmissen werden und sich automatisch einloggen, können Sie sich wieder an Ihren Bildschirm anhängen. Hier ist eine Anleitung, wie man das macht: http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/

Es ist mühsam, screen einzugeben und sich jedes Mal neu anzumelden, wenn man rausgeworfen wird. Sie können also ein Skript schreiben, das Sie “automatisch auf den letzten verfügbaren Bildschirm zurückbringt”, um ihn transparent zu machen.

Also dann, wenn das Kittenterminal einfriert. Es sieht folgendermaßen aus: Sie machen ein Schnauben der Verachtung, drücken Alt+F4, um Kitt zu schließen, drücken F6. Und in 6 Sekunden sind Sie wieder genau da, wo Sie aufgehört haben.

Theoretisch eine noch bessere Lösung

Theoretisch könnten Sie diesen gesamten obigen Vorgang in ein Script umwandeln, so dass das Terminal erkennt, wann es fallen gelassen wurde, und alle oben genannten Schritte bei der Wiederherstellung der Internetverbindung für Sie erledigt. Wenn jemand ein Programm kennt, das dies automatisch tut, lassen Sie es mich wissen. Das wäre nett.

Quellen: http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter4.html#config-keepalive http://rafaelwolf.com/?p=516

10
10
10
2012-08-20 13:35:11 +0000

Fehlerbehebung des PuTTY-Netzwerkfehlers

Software caused connection abort

Lesen Sie, was PuTTY über den Fehler zu sagen hat

Dies ist ein allgemeiner Fehler, der vom Windows-Netzwerkcode erzeugt wird, wenn er eine bestehende Verbindung aus irgendeinem Grund beendet. Er kann z.B. auftreten, wenn Sie das Netzwerkkabel aus der Rückseite eines mit dem Ethernet verbundenen Computers herausziehen, oder wenn Windows einen ähnlichen Grund zur Annahme hat, dass das gesamte Netzwerk unerreichbar geworden ist.

Windows erzeugt diesen Fehler auch, wenn es den Rechner am anderen Ende der Verbindung aufgegeben hat, der darauf reagiert. Wenn das Netzwerk zwischen Ihrem Client und Server ausfällt und Ihr Client dann versucht, einige Daten zu senden, unternimmt Windows mehrere Versuche, die Daten zu senden, und gibt dann auf und beendet die Verbindung. Insbesondere kann dies auch dann auftreten, wenn Sie nichts eingegeben haben, wenn Sie SSH-2 verwenden und PuTTY versucht, einen Schlüssel erneut auszutauschen.

(Dies kann auch auftreten, wenn Sie Keepalives in Ihrer Verbindung verwenden. Andere Personen haben berichtet, dass Keepalives diesen Fehler für sie beheben. (Es gibt Vor- und Nachteile von Keepalives.))

Uns ist kein Grund bekannt, warum dieser Fehler auftreten könnte, der einen Fehler in PuTTY darstellen würde. Das Problem besteht zwischen Ihnen, Ihrem Windows-System, Ihrem Netzwerk und dem entfernten System.

Versuchen Sie einen anderen SSH-Client

Höchstwahrscheinlich besteht das Problem irgendwo zwischen PuTTY und dem Ziel-SSH-Server. Um den Beweis dafür zu erbringen, verwenden Sie einen anderen SSH-Client wie http://kitty.9bis.net ) und schauen Sie, ob das Problem auch dort auftritt. Dadurch wird das Problem wahrscheinlich von PuTTY isoliert.

Verdacht auf unregelmäßige Internetverbindung

Das Problem könnte die unregelmäßige Internetverbindung sein. Internet-Konnektivität Die Überwachung der Betriebszeit einer Internet-Verbindung ist ein guter Weg, um festzustellen, ob Ihr ISP Pakete verliert und für den Ausfall von PuTTY verantwortlich ist. Besorgen Sie sich eine Software, die die Betriebszeit einer Internetverbindung testet. Zum Beispiel http://code.google.com/p/internetconnectivitymonitor/ . Häufige und lange Unterbrechungen der Verbindung zum Internet stellen eine Verletzung der ISP-Dienstanforderungen dar. Wenn dies der Fall ist, wird es schwierig sein, zu beweisen, dass es die Schuld des ISPs ist, da der technische Support diese Art von Problemen automatisch auf Ihren Computer, Ihr Betriebssystem, Ihren Router und die Verkabelung zu Ihnen nach Hause schiebt. Wenn Sie Kabel-Internet benutzen und in der Provinz leben, könnte es sein, dass defekte Hardware in den Häusern Ihrer Nachbarn beim ersten Einschalten für einige Sekunden/Minuten statische Elektrizität in die Leitung sendet. Schließlich ist es auch möglich, dass sich defekte Hardware im Netzwerk des ISPs zu Ihnen nach Hause befindet. Die Kosten für ISPs für den Austausch ihrer Hardware sind so hoch, dass sie dies oft nur dann tun, wenn es in einem Gebiet genügend Abonnenten gibt, die die Kosten garantieren können.

Verdächtigen Sie den verkabelten/drahtlosen Router

Verbinden Sie sich über einen verkabelten/drahtlosen Router? Wie alt ist er? Ihr Router könnte das Problem sein. Alte drahtlose und drahtgebundene Technologie kann veraltet werden und Verbindungen sporadisch abbrechen und neu starten, was zum Absterben von PuTTY führen kann. Entfernen Sie diese Komponenten aus der Gleichung und schauen Sie, ob das Problem dadurch gelöst wird. Versuchen Sie es mit einer drahtgebundenen Verbindung und/oder einem anderen Router, um zu sehen, ob das Problem dadurch behoben wird. Ich hatte einen drahtlosen Router von Linksys, der diesen langsamen Tod erlitt und Verbindungen abbrach und neu startete.

Vermute das Betriebssystem, das die SSH-Verbindung bereitstellt

Der Computer, mit dem Sie eine SSH-Verbindung herstellen, verfügt über eine Richtlinie für eine Anzahl von Sekunden, um SSH-Verbindungen aufrechtzuerhalten. Diese Anzahl ist aus Sicherheitsgründen niedrig angesetzt, und Sie können sie erhöhen. Wo diese Einstellung liegt, hängt davon ab, welches Betriebssystem Sie verwenden, das SSH zur Verfügung stellt.

Wenn Sie PuTTY über eine virtuelle Maschine verwenden

Wenn Sie PuTTY über eine virtuelle Maschine verwenden, gibt es möglicherweise eine Richtlinie auf der virtuellen Maschine, die Ihre SSH-Verbindung zum Server unterbricht, wenn sie denkt, sie sei inaktiv. Das Erhöhen dieser Werte hängt davon ab, welche Software der virtuellen Maschine und welches Betriebssystem Sie verwenden.

Wenn die Internetverbindung schlecht ist, kann die SSH-Client-Verbindung umgangen werden:

Wenn Ihr ISP eine instabile Verbindung zur Verfügung stellt, könnten Sie die Verbindungsunterbrechungen mit “ssh autologin” weniger schmerzhaft machen. Was Sie tun, ist, einen öffentlichen und einen privaten Schlüssel zu erzeugen. Und Sie weisen Ihren fremden Server an, automatisch jeden hereinzulassen, der einen korrekten privaten Schlüssel zur Verfügung stellt. Das löst Ihr Problem nicht vollständig, aber wenn der Internet-Ausfall eintritt, brauchen Sie nur das Fenster zu schließen, auf ein Symbol doppelzuklicken, und Sie werden sofort zur Befehlszeile Ihres Home-Ordners zurückgebracht, ohne Benutzername/Passwort einzugeben.

Das wird Ihnen dabei helfen Gibt es eine Möglichkeit, sich in PuTTY mit einem Passwort “automatisch anzumelden”?

4
4
4
2013-10-29 16:48:06 +0000

Ich arbeitete mit CentOS -Servern von Windows-PCs aus, und ich hatte das gleiche Problem mit PuTTY. Eine Sitzung dauerte nicht länger als 1-5 Minuten. Ich habe versucht, mit PuTTY-Einstellungen (keepalives usw.) zu spielen, aber es hat überhaupt nicht geholfen.

Schließlich habe ich die Lösung für meinen Fall gefunden. Ich habe TCP-Dumps sowohl auf dem Client als auch auf dem Server aufgezeichnet. Ich habe entdeckt, dass während 25-30 Sekunden vor dem Trennen der Verbindung mehrere erneute Übertragungen von TCP-Segmenten im Dump des Clients stattfinden (sowohl von der Client- als auch von der Serverseite), und schließlich sendet PuTTY RST und schließt die Sitzung mit diesem Fehler. Im Speicherauszug des Servers habe ich in diesem Zeitraum keine Segmente vom Client gesehen, nicht einmal RST. Das bedeutet, dass von Zeit zu Zeit keine TCP-Segmente vom Client an den Server geliefert werden, und dieser Zeitraum beträgt etwa 30-60 Sekunden. Ich habe den Fall mehrmals aufgezeichnet, und immer gab es erneute Übertragungen und abschließende RST von PuTTY. Wahrscheinlich wurden irgendwo auf der Route Pakete von Netzwerkgeräten fallengelassen.

Um einen Workaround zu schaffen, habe ich die maximale Anzahl der Datenwiederübertragungen vom Standardwert 5 auf 16 erhöht. Das könnte verhindern, dass PuTTY die Verbindung zu schnell trennt. Die Variable lautet ‘HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxDataRetransmissions’. Ich habe diese Variable manuell hinzugefügt, sie war ursprünglich nicht in der Windows-Registrierung definiert. Es hat geholfen! Jetzt sehe ich, daß PuTTY von Zeit zu Zeit hängt, aber es kommt immer wieder zur Arbeit zurück.

Um das Problem zu beheben: 1. Zeichnen Sie einen TCP-Dump auf und suchen Sie nach erneuten Übertragungen und RST, bevor Sie die Verbindung trennen. 2. Wenn Sie die gleichen Sendewiederholungen/RST-Segmente finden, passen Sie die Anzahl der Wiederholungsversuche auf einer Server- oder Client-Seite an (es hängt von der Seite der RST ab).

Seien Sie vorsichtig: Die Änderung der TCP-Einstellungen gilt für die gesamte Software und das Betriebssystem selbst.

4
4
4
2013-02-08 19:08:00 +0000

Führen Sie in einer erhöhten Eingabeaufforderung Folgendes aus:

C:\Windows\system32>netsh int tcp show global

Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State : enabled

Chimney Offload State : automatic

NetDMA State : enabled

Direct Cache Acess (DCA) : disabled

Receive Window Auto-Tuning Level : normal

Add-On Congestion Control Provider : none

ECN Capability : disabled

RFC 1323 Timestamps : disabled

Wenn Receive Window Auto-Tuning Level normal ist, erhalten Sie Probleme. Deaktivieren Sie es, und dann sollte alles wie gewohnt funktionieren:

C:\Windows\system32>netsh int tcp set global autotuninglevel=disabled
3
3
3
2014-11-26 09:57:12 +0000

Der Fehler Netzwerkfehler: Software verursachter Verbindungsabbruch von PuTTY ist das Ergebnis, wenn es einen IP-Adressenkonflikt (zwei oder mehr Computer haben dieselbe IP-Adresse) im Netzwerk gibt. (Ich hatte dieses Problem mit einem Raspberry Pi , dem vom DHCP -Server dieselbe IP-Adresse zugewiesen wurde wie irgendeinem abtrünnigen Gerät/Computer, das manuell zur Verwendung derselben IP-Adresse eingerichtet wurde).

In diesem speziellen Fall könnte es sich um einen IP-Adresskonflikt lokal auf dem Windows 7-Computer oder mit einem anderen Gerät im Netzwerk handeln. Wireshark kann verwendet werden, um diese Art von Fehler erfolgreich aufzuspüren.

2
2
2
2012-08-24 09:09:46 +0000

Registerkarte “Verbindung”: Keep Alive auf “5” Sekunden eingestellt und aktiviert

Aber noch wichtiger:

Verbindung -> SSH -> Kex, Max Minuten vor erneuter Eingabe: “2” (Voreinstellung ist 60)

Mein PuTTY verlor nach einer Weile seinen Schlüssel und verursachte den Timeout. Das Herabsetzen dieses Wertes auf “2” Minuten löste das Problem. Ich bleibe jetzt auf unbestimmte Zeit verbunden.

2
2
2
2012-08-20 13:41:23 +0000

Der Fehler 10053 WSAECONNABORTED (Software caused connection abort.) ist ein allgemeiner Winsock Fehler, der aus einer beliebigen Anzahl von Gründen ausgegeben werden kann.

Die offizielle Erklärung besagt:

Dieser Fehler kann auftreten, wenn das lokale Netzwerksystem eine Verbindung abbricht, z.B. wenn Winsock eine aufgebaute Verbindung schließt, nachdem die erneute Datenübertragung fehlgeschlagen ist (der Empfänger bestätigt niemals Daten, die auf einem Datenstromsocket gesendet wurden). Es ist unmöglich, eine einzige Lösung anzubieten.

2
2
2
2013-02-28 23:27:57 +0000

Ich hatte das gleiche Problem mit PuTTY nach der Installation eines neuen WLAN-Routers / 3G-Modems für die Verbindung zum Internet. Ich versuchte alle oben genannten Keep-alive-Lösungen - und alle im Konfigurationsmenü meines Routers - ohne Erfolg.

Dann erinnerte ich mich an etwas aus den 90er Jahren, als ich ein Festnetz-Telefonmodem hatte: die MTU (Maximale Übertragungseinheit), im Grunde die maximale Größe der übertragenen Datenblöcke - sie hatte eine bemerkenswerte Auswirkung auf die Stabilität der Verbindung.

Also überprüfte ich die Konfiguration meines WLAN-Routers, fand die MTU-Einstellung und änderte sie von einem festen Wert von 1424 auf “Auto” (ich wollte es mit einem kleineren Wert versuchen, aber “Auto” klang noch besser). Danach hatte ich keine Probleme mehr mit PuTTY - die Verbindung ist jetzt felsenfest. Ich hoffe, dies hilft zumindest jemandem mit dem Problem “Netzwerkfehler: Software verursachte Verbindungsabbruch”.

1
1
1
2017-05-31 04:54:07 +0000

Ich war tatsächlich viele Male mit diesem Problem konfrontiert. Ich habe stundenlang nach einer Lösung gesucht, aber keine von ihnen war wirksam. Ich teile die Lösung, die bei mir funktioniert hat, und ich hoffe, dass sie auch für andere hilfreich sein wird.

Ich habe Windows 10 als Host-O/S und Redhat-7 als Gast-O/S und meine VMware hatte die Verbindung überbrückt. Als DBA muss ich Kunden besuchen und meine Netzwerkkonfiguration entsprechend den Räumlichkeiten des Kunden einstellen. Jedes Mal, wenn ich also die Räumlichkeiten des Kunden verlasse und mich über eine drahtlose und offene VM mit einem anderen Netzwerk verbinde, sah ich mich mit dem gleichen Problem konfrontiert wie in der Frage angegeben. Also dachte ich eine Weile nach und überprüfte meine Konfiguration für LAN-Ethernet und drahtloses Ethernet, und ich fand eine Diskrepanz. Denn meine VM würde automatisch das physikalische Ethernet zwischen zweien zur Überbrückung verwenden. Als ich also die Netzwerkkonfiguration für LAN/Wireless Ethernet auf DHCP zurücksetzte, funktionierte es wie am Schnürchen und kein Verbindungsabbruch mehr. [Sie können Ihren Host-Rechner auch neu starten, nachdem Sie ihn auf DHCP eingestellt haben].

1
1
1
2013-03-12 16:11:43 +0000

Ich stieß auf dasselbe Problem entweder mit einem WinSCP -Skript oder einer GUI-Konsole. Schließlich fand ich heraus, dass das mit der Geschwindigkeit zu tun hat (Internet-Geschwindigkeit - unser Server steht im Internet). Ich verlegte das Skript an einen anderen Ort im Netzwerk, an einen anderen Standort, und nicht sowohl GUI als auch Skript liefen gut.

Es wurde nach vielen Analysen und Sortierungen aussortiert.

0
0
0
2011-06-09 22:30:02 +0000

Sie müssen TCPKeepAlive unter Linux aktivieren.

Es wird in der FAQ von PuTTy auf der Website erklärt, wenn Sie nach diesem Fehler suchen.

0
0
0
2013-01-10 17:23:40 +0000

Wenn die virtuelle Maschine auf Ihrer lokalen Hardware läuft, deaktivieren Sie Keep-Alive-Pakete.