Ich habe ein seltsames Problem: Wenn ich PuTTY mit SSH verwende, um eine Verbindung zu einem Linux-Server herzustellen, der in VMware unter meinem lokalen Windows 7 gehostet wird , wird häufig die Fehlermeldung angezeigt, "Network error: Software caused connection abort"
und das PuTTY-SSH-Fenster ist inaktiv. Normalerweise kann ich mich mit PuTTY auf dem Server anmelden und etwas unternehmen, aber nach einer zufälligen Zeit (ungefähr ein oder zwei Minuten) erhalte ich diesen Fehler. Und manchmal kann ich mich sogar nicht einloggen, und es wird eine Fehlermeldung angezeigt, dass die Zeit abgelaufen ist.
Ich vermute, mit meinem VMware-Player stimmt etwas nicht, weil ich einen anderen Ubuntu-Desktop in VMware als Code-Repository-Server habe und es beim Durchführen eines SVN-Updates / Commits häufig einen Timeout-Fehler gibt. Ich vermute jedoch auch, dass Windows 7 eine gewisse Eigenheit hat, da derselbe Ubuntu-Server, der in VMware als Code-Repository gehostet wird, unter Windows Vista sehr gut funktioniert! Es scheint, dass all die schlechten Dinge passieren, nachdem ich von Windows XP auf Windows Vista und dann auf Windows 7 umgestiegen bin!
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 angewendet, um zu helfen, einschließlich:
- Aktivieren Sie sshd
TCPKeepAlive
- Stellen Sie sshd
ClientAliveInterval
auf900
undClientAliveCountMax
auf3
- Setzen Sie die PuTTY-Verbindungseinstellung "Sekunden zwischen Keepalives" auf
5
.
Aber das alles funktioniert 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 deaktiviert, aber beim Anmelden tritt immer noch eine Zeitüberschreitung auf! Es ist wirklich nervig!
Es scheint, dass ich mich manchmal einloggen kann, aber manchmal melde ich mich mal ab! Ich weiß wirklich nicht warum. Es macht mich verrückt!
Eine Sache, die ich erwähnen muss, ist, dass wenn ich PuTTY SSH verwende, eine Verbindung zu einem Remote-Server hergestellt wird und alles in Ordnung ist!
Wenn ich mich nicht einloggen konnte, schlug auch der Ping fehl! Aber wie kann das passieren? Ich verwende VMware Player, um den Linux-Server auf meinem lokalen Computer zu hosten!
Antworten:
Putty hat eine Funktion, die versucht, dieses Problem zu beheben:
So halten Sie die Verbindung zu Putty aufrecht:
Einige Netzwerkrouter und Firewalls müssen alle Verbindungen über sie verfolgen. Normalerweise gehen diese Firewalls davon aus, dass eine Verbindung unterbrochen ist, wenn nach einem bestimmten Zeitintervall keine Daten in eine der beiden 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 festgestellt wird.
Mit der Keepalive-Option ("Sekunden zwischen Keepalives") können Sie PuTTY so konfigurieren, dass Daten in regelmäßigen Abständen durch die Sitzung gesendet werden, ohne die eigentliche Terminalsitzung zu stören. Wenn Sie feststellen, dass Ihre Firewall inaktive Verbindungen unterbricht, können Sie versuchen, in dieses Feld einen Wert ungleich Null einzugeben. Der Wert wird in Sekunden gemessen. Wenn Ihre Firewall beispielsweise die Verbindung nach zehn Minuten unterbricht, möchten Sie möglicherweise 300 Sekunden (5 Minuten) in das Feld eingeben.
Reduzieren Sie das Problem mit Putty Autologin und "Screen" -Tool
Putty kann nicht mit einem beschissenen WLAN umgehen, das minutenlang die Verbindung verliert. Ein Workaround ist die Verwendung von Autologin und Screen.
Es ist ein nicht triviales Problem für Putty, Ihr Terminal nach einem minutenlangen Verlust der Internetverbindung neu zu synchronisieren. Sie laufen Gefahr, während eines Ausfalls in der Mitte Menschen anzugreifen. Sie müssten sich trotzdem erneut authentifizieren, um dies sicherzustellen. Putty legt dir das nicht auf, es lässt dich einfach fallen.
Verwenden Sie daher die automatische Anmeldung, damit sich Putty automatisch in Ihrem Namen anmelden kann.
/home/youruser/.ssh/authorized_keys
auf der Serverseite in den Server ein, auf dem Sie sich mit putty go anmelden.Dann könnten Sie durch Putty auf Ihre Verbindung doppelklicken, und Sie sollten direkt zum Terminal gelangen, ohne Benutzername / Passwort einzugeben.
Jetzt können Sie sich mit einer Tastaturkombination wie der folgenden anmelden, um diese Verbindung herzustellen F6. Also, wenn das WiFi schlecht geht und Sie fallen gelassen werden. Du drückst F6 runter und bist wieder eingeloggt.
ABER Sie verlieren immer noch den Zustand Ihres Terminals! Wie kann man das beheben? Verwenden Sie das "Bildschirm" -Programm. Erstellen Sie einen neuen Bildschirm, indem Sie "Bildschirm" eingeben. Ein neuer Bildschirm wird erstellt.
Wenn Sie rausgeschmissen werden und sich automatisch anmelden, können Sie erneut eine Verbindung zu Ihrem Bildschirm herstellen. Hier ist ein Tutorial, wie das geht: http://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/
Es ist mühsam, bei
screen
jedem Fallenlassen eine neue Verbindung herzustellen. Sie können also ein Skript schreiben, das "automatisch zum letzten verfügbaren Bildschirm zurückkehrt", um es transparent zu machen.Also dann, wenn das Kitt-Terminal einfriert. Es sieht so aus: Sie schnauben verächtlich, drücken Sie Alt + F4, um den Kitt zu schließen, drücken Sie F6. Und in 6 Sekunden sind Sie wieder da, wo Sie aufgehört haben.
Theoretisch noch bessere Lösung
Theoretisch könnten Sie diesen gesamten oben genannten Prozess ausschreiben, sodass das Terminal erkennt, wenn es fallengelassen wurde, und alle oben genannten Schritte für Sie bei der Wiederherstellung der Internetverbindung ausführt. Wenn jemand ein Programm kennt, das dies automatisch tut, lass es mich wissen. Es wäre ordentlich.
Quellen:
http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter4.html#config-keepalive
http://rafaelwolf.com/?p=516
quelle
Fehlerbehebung beim PuTTY-Netzwerkfehler
Lesen Sie, was PuTTY zu dem Fehler zu sagen hat
Dies ist ein allgemeiner Fehler, der vom Windows-Netzwerkcode erzeugt wird, wenn eine hergestellte Verbindung aus irgendeinem Grund beendet wird. Dies kann beispielsweise der Fall sein, wenn Sie das Netzwerkkabel von der Rückseite eines mit Ethernet verbundenen Computers abziehen oder wenn Windows einen ähnlichen Grund zu der Annahme hat, dass das gesamte Netzwerk nicht mehr erreichbar ist.
Windows generiert diesen Fehler auch, wenn es auf dem Computer am anderen Ende der Verbindung aufgegeben hat und darauf reagiert. Wenn das Netzwerk zwischen Ihrem Client und Server ausfällt und Ihr Client versucht, einige Daten zu senden, unternimmt Windows mehrere Versuche, die Daten zu senden, und gibt dann die Verbindung auf und beendet sie. Dies kann insbesondere dann auftreten, wenn Sie nichts eingegeben haben, wenn Sie SSH-2 verwenden und PuTTY versucht, den Schlüssel erneut auszutauschen.
(Es kann auch vorkommen, wenn Sie in Ihrer Verbindung Keepalives verwenden. Andere Personen haben gemeldet, 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 Remote-System.
Probieren Sie einen anderen SSH-Client aus
Höchstwahrscheinlich liegt das Problem irgendwo zwischen PuTTY und dem Ziel-SSH-Server. Um dies zu beweisen, verwenden Sie einen anderen SSH-Client wie ( http://kitty.9bis.net ) und prüfen Sie, ob das Problem auch hier auftritt. Es wird wahrscheinlich das Problem von PuTTY isolieren.
Verdacht auf fleckige Internetverbindung
Das Problem kann die fleckige Internetverbindung sein. Internetkonnektivität Die Überwachung der Verfügbarkeit einer Internetverbindung ist eine gute Methode, um festzustellen, ob Ihr Internetdienstanbieter Pakete verliert, und ist schuld daran, dass PuTTY ausfällt. Holen Sie sich eine Software, die die Verfügbarkeit einer Internetverbindung testet. Beispiel: http://code.google.com/p/internetconnectivitymonitor/. Häufiges und langes Trennen vom Internet verstößt gegen die Anforderungen des Internetdienstanbieters. Wenn dies der Fall ist, ist es schwierig zu beweisen, dass es die Schuld des Internetdienstanbieters ist, da der technische Support diese Art von Problemen automatisch auf Ihrem Computer, Betriebssystem, Router und der Verkabelung zu Ihnen nach Hause schiebt. Wenn Sie das Kabel-Internet nutzen und in den Boonies leben, kann es sein, dass defekte Hardware in den Häusern Ihrer Nachbarn beim ersten Einschalten für einige Sekunden / Minuten statische Aufladung der Leitung verursacht. Schließlich ist es möglich, dass das Netzwerk des Internetdienstanbieters zu Ihnen nach Hause defekte Hardware enthält. Die Kosten für ISPs, ihre Hardware zu ersetzen, sind so hoch, dass sie dies häufig nicht tun, es sei denn, es gibt genügend Abonnenten in einem Gebiet, um die Kosten zu rechtfertigen.
Verdacht auf den verkabelten / drahtlosen Router
Stellen Sie eine Verbindung über einen verkabelten / drahtlosen Router her? Wie alt ist es? Ihr Router könnte das Problem sein. Alte kabellose und kabelgebundene Technologien können veraltet sein und Verbindungen sporadisch trennen und neu starten, wodurch PuTTY abstürzt. Entfernen Sie diese Komponenten aus der Gleichung und prüfen Sie, ob das Problem dadurch behoben wird. Versuchen Sie es mit einer Kabelverbindung und / oder einem anderen Router, um festzustellen, ob das Problem dadurch behoben wird. Ich hatte einen Linksys-WLAN-Router, der diese langsamen Todes- und Verbindungsabbrüche hinnehmen musste und sie neu startete.
Vermuten Sie, dass das Betriebssystem die SSH-Verbindung bereitstellt
Der Computer, mit dem Sie eine Verbindung mit SSH herstellen, verfügt über eine Richtlinie für die Dauer von Sekunden, um SSH-Verbindungen aufrechtzuerhalten. Diese Zahl ist aus Sicherheitsgründen niedrig eingestellt, und Sie können sie erhöhen. Wo sich diese Einstellung befindet, hängt davon ab, welches Betriebssystem SSH bereitstellt.
Wenn Sie PuTTY über eine virtuelle Maschine verwenden
Wenn Sie PuTTY verwenden, um eine virtuelle Maschine zu durchlaufen, ist möglicherweise eine Richtlinie für die virtuelle Maschine vorhanden, die Ihre SSH-Verbindung zum Server unterbricht, wenn sie denkt, dass sie inaktiv ist. Das Erhöhen dieser Werte hängt davon ab, welche Software für die virtuelle Maschine und welches Betriebssystem Sie verwenden.
Wenn die Internetverbindung schlecht ist, können Sie die folgenden Probleme mit der SSH-Clientverbindung umgehen:
Wenn Ihr ISP eine instabile Verbindung bereitstellt, können Sie die Unterbrechungen mit "ssh autologin" lindern. Sie generieren einen öffentlichen und einen privaten Schlüssel. Und Sie weisen Ihren fremden Server an, automatisch jeden einzulassen, der einen genauen privaten Schlüssel bereitstellt. Es löst Ihr Problem nicht vollständig. Wenn jedoch ein Internetausfall auftritt, müssen Sie nur das Fenster schließen, auf ein Symbol doppelklicken und sofort ohne Eingabe eines Benutzernamens / Kennworts zur Befehlszeile Ihres Basisordners zurückkehren.
Dies wird Ihnen dabei helfen: Gibt es eine Möglichkeit, sich in PuTTY mit einem Passwort "automatisch anzumelden"?
quelle
Führen Sie an einer Eingabeaufforderung mit erhöhten Rechten Folgendes aus:
Wenn dies
Receive Window Auto-Tuning Level
normal ist, treten Probleme auf. Deaktiviere es und dann sollte alles so funktionieren wie früher:quelle
Ich habe mit CentOS- Servern von Windows-PCs aus gearbeitet und 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.
Endlich 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 festgestellt, dass sich während 25 bis 30 Sekunden vor dem Trennen der Verbindung mehrere Neuübertragungen von TCP-Segmenten im Speicherauszug des Clients befinden (sowohl von der Client- als auch von der Serverseite). Schließlich sendet PuTTY RST und schließt die Sitzung mit diesem Fehler. Im Server-Dump habe ich in diesem Zeitraum keine Segmente vom Client gesehen, sogar RST. Dies bedeutet, dass von Zeit zu Zeit keine TCP-Segmente vom Client an den Server übermittelt werden und dieser Zeitraum etwa 30-60 Sekunden beträgt. Ich habe den Fall mehrere Male aufgezeichnet und es gab immer Neuübertragungen und endgültige RST von PuTTY. Wahrscheinlich wurden Pakete irgendwo auf der Route von Netzwerkgeräten verworfen.
Um das Problem zu umgehen, habe ich die maximale Anzahl der erneuten Datenübertragungen von dem Standardwert 5 auf 16 erhöht. Dies 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 wurde ursprünglich nicht in der Registrierung von Windows definiert. Es hat geholfen! Jetzt sehe ich, dass PuTTY von Zeit zu Zeit hängt, aber es kommt immer wieder zur Arbeit.
So beheben Sie das Problem: 1. Zeichnen Sie einen TCP-Speicherauszug auf und suchen Sie nach erneuten Übertragungen und RST, bevor Sie die Verbindung trennen. 2. Wenn Sie dieselben Neuübertragungen / RST-Segmente finden, passen Sie die Anzahl der Neuversuche auf Server- oder Clientseite an (dies hängt von der Seite von RST ab).
Seien Sie vorsichtig: Das Ändern der TCP-Einstellungen gilt für die gesamte Software und das Betriebssystem.
quelle
Der Fehler Netzwerkfehler: Ein durch Software verursachter Verbindungsabbruch von PuTTY ist das Ergebnis eines IP-Adressenkonflikts (zwei oder mehr Computer haben dieselbe IP-Adresse) im Netzwerk. (Ich hatte dieses Problem mit einem Raspberry Pi , dem vom DHCP- Server dieselbe IP-Adresse zugewiesen wurde wie einem nicht autorisierten Gerät / Computer, der manuell so eingerichtet wurde, dass er dieselbe IP-Adresse verwendet.)
In diesem speziellen Fall liegt möglicherweise ein IP-Adressenkonflikt lokal auf dem Windows 7-Computer oder mit einem anderen Gerät im Netzwerk vor. Mit Wireshark können solche Fehler erfolgreich aufgespürt werden.
quelle
Der Fehler
10053 WSAECONNABORTED
(durch Software verursachter Verbindungsabbruch) ist ein allgemeiner Winsock- Fehler, der aus einer Reihe von Gründen ausgegeben werden kann.Die offizielle Erklärung lautet:
Die Gründe für dieses Problem können von fehlerhaften Netzwerkkabeln bis hin zu einfachen Verbindungsverlusten reichen. Es ist unmöglich, eine einzige Lösung anzubieten.
quelle
Ich hatte das gleiche Problem mit PuTTY nach der Installation eines neuen WLAN-Routers / 3G-Modems, um eine Verbindung zum Internet herzustellen. Ich habe alle oben genannten Keep-Alive-Lösungen - und alle im Konfigurationsmenü meines Routers - ohne Erfolg ausprobiert.
Dann fiel mir etwas aus den 90er Jahren ein, als ich ein Festnetzmodem hatte: die MTU (Maximum Transmission Unit), im Grunde die maximale Größe der übertragenen Datenblöcke - dies hatte einen bemerkenswerten Einfluss 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 einen kleineren Wert ausprobieren, aber "Auto" klang noch besser). Danach hatte ich keine Probleme mehr mit PuTTY - die Verbindung ist jetzt absolut stabil. Ich hoffe das hilft zumindest jemandem mit dem Problem "Netzwerkfehler: Software verursachte Verbindungsabbrüche".
quelle
Registerkarte "Verbindung": Bei "5" Sekunden am Leben bleiben und aktiviert
Aber noch wichtiger:
Verbindung -> SSH -> Kex , Max. Minuten vor dem erneuten Schlüssel : "2" (Standard ist 60).
Mein PuTTY verlor nach einer Weile seinen Schlüssel und verursachte eine Zeitüberschreitung. Das Fallenlassen dieses Wertes auf "2" Minuten löste das Problem. Ich bleibe jetzt auf unbestimmte Zeit in Verbindung.
quelle
Ich bin auf dasselbe Problem gestoßen, entweder mit einem WinSCP- Skript oder einer GUI-Konsole. Schließlich stellte ich fest, dass dies mit der Geschwindigkeit zusammenhängt (Internetgeschwindigkeit - unser Server ist im Internet). Ich habe das Skript an einen anderen Ort im Netzwerk verschoben, an einen anderen Ort, und GUI und Skript sind nicht gut gelaufen.
Es wurde nach vielen Analysen und Sortierungen aussortiert.
quelle
Sie müssen
TCPKeepAlive
unter Linux aktivieren .Es wird in den häufig gestellten Fragen zu PuTTy auf der Website erklärt, wenn Sie nach diesem Fehler suchen.
quelle
Wenn die virtuelle Maschine auf Ihrer lokalen Hardware ausgeführt wird, deaktivieren Sie Keep Alive-Pakete.
quelle
Ich war tatsächlich viele Male mit diesen Problemen konfrontiert. Ich habe stundenlang nach Lösungen gesucht, aber keine davon war wirksam. Ich teile die Lösung, die für mich funktioniert hat, und hoffe, dass sie auch für andere hilfreich ist.
Ich habe Windows 10 als Host-O / S und Redhat-7 als Gast-O / S und meine VMware hatte eine Bridged-Verbindung. Als DBA muss ich Kunden besuchen und meine Netzwerkkonfiguration gemäß den Kundenvorgaben festlegen. Wenn ich also den Client verlasse und über eine drahtlose und offene VM eine Verbindung zu einem anderen Netzwerk herstelle, habe ich das gleiche Problem wie in der Frage angegeben. Also habe ich eine Weile nachgedacht und meine Konfiguration für LAN-Ethernet und Wireless-Ethernet überprüft und eine Nichtübereinstimmung festgestellt. Da meine VM automatisch das physikalische Ethernet zwischen zwei zum Bridgen verwenden würde. Also, wenn ich die Netzwerkkonfiguration für LAN / Wireless Ethernet auf DHCP zurücksetze, funktioniert es wie Charme und kein Verbindungsabbruch mehr. [Sie können Ihren Host-Computer auch neu starten, nachdem Sie ihn auf DHCP eingestellt haben.]
quelle