2009-05-20 5 views
4

Dies macht meine Programmierung in letzter Zeit wirklich frustrierend.ssh hängt mit hoher Latenz Verbindung (verbindet international)

Ich bin in Argentinien gerade Verbindung zu einem US-Server über SSH. Verständlicherweise sind die Pings hier etwas höher (ungefähr 200ms im Durchschnitt), so dass es bei jedem SSH eine leichte Verzögerung zwischen jedem Tastendruck gibt. Das ist gut und einfach genug, um damit zu arbeiten.

Es ist nicht einfach zu arbeiten ist, dass etwa alle 5 Minuten oder so, SSH wird vollständig hängen und dauert etwa 3-5 Minuten, um eine Eingabeaufforderung zurück. Ich weiß, dass der Server nicht steckengeblieben ist, weil ich mehrere neue Verbindungen leicht öffnen kann, während ich darauf warte, dass einer zurückkehrt (tatsächlich ist dies die einzige Möglichkeit, die ich hätte arbeiten können). Und wenn SSH endlich zurückkommt, kann ich sehen, dass es tatsächlich im Hintergrund funktioniert hat (große Dateidownloads waren eine gute Möglichkeit, dies zu testen), aber es hat meinen Bildschirm gerade nicht aktualisiert.

Hat jemand eine Idee, was könnte das verursachen?

Wenige andere Fakten: Der Server ist Ubuntu und ich verbinde mich mit Mac OS X. Ich habe Keepalive in den SSH-Einstellungen eingeschaltet. Es ist am wahrscheinlichsten zu hängen, wenn ich eine Taste gedrückt halte (zum Beispiel einen linken oder rechten Pfeil zum Scrollen), der schnell viele Tasten sendet. Tatsächlich kann ich den Hang zuverlässig reproduzieren, indem ich einen beliebigen Schlüssel wie "a" anmelde und festhalte - er kommt nie über eine volle Zeile von "a" hinaus, bevor er hängt. Das hat gerade erst begonnen, als ich zum ersten Mal international verbunden bin, also nehme ich an, dass es etwas damit zu tun hat (Latenz?), Aber ich kann es nicht sicher sagen.

Antwort

1

Ich denke, es war ein Problem mit dem ISP hier in Argentinien. Als ich zu einem anderen drahtlosen Netzwerk mit einem anderen ISP wechselte, fing es an zu arbeiten. Sie spielen wahrscheinlich Port-Throttling-Spiele oder wer weiß was.

+5

Willkommen in Argentinien, Land des Paketverlustes. –

0

Versuchen Sie, Ihre TCP window size anzupassen.

+0

Hallo eduffy, ich lese das auf und versuchte einige Dinge (http: //wheel.troxo.com/2008/06/05/tcp-window-scaling-conundrum /), wie zum Beispiel das Deaktivieren der TCP-Fensterskalierung auf dem Ubuntu-Server und auf meinem Mac, mit dem ich mich verbinde. Hat noch nicht so weit geklappt, aber ich bin zugegebenermaßen nicht wirklich sicher, was ich mache. Wenn Sie irgendwelche anderen Tipps haben, wäre das großartig. Danke für die Antwort! –

+0

Eigentlich denke ich, es könnte das Mac-Terminal sein. Es tut mir das ziemlich oft von meinem MacBook, wenn ich versuche, viele Daten auf einmal zu erhalten (also versuche ich, "Katze" zu vermeiden). – eduffy

+0

Ja, ich weiß, was du meinst, eine lange Katze wird für ein paar Sekunden hängen bleiben usw. Das ist es nicht, obwohl ... das ist eine 5 Minuten lange Zeit nachdem du nur eine einzige Taste gedrückt hast. –

0

Ich bin es gewohnt, über hohe Latenz Links - 600ms. Es ist langsam, aber ich hatte selten Probleme. Beginnen Sie mit - Öffnen Sie ein anderes Terminalfenster, pingen Sie Ihren Server an und beobachten Sie die Verbindung. Sag uns, was du siehst.

+1

Hallo Eugene ... Pings sind gut und konsistent in einem zweiten Terminalfenster. Ich kann sogar eine andere Verbindung öffnen und normal weiterarbeiten (bis das hängt). Der Server ist währenddessen gesund und munter. –

+0

@BrianArmstrong Haben das gleiche genaue Problem! –

0

Probieren Sie sshing mit ein paar ausführlichen Flags (ssh -vv [vv] somehost) und sehen Sie, ob etwas Indikatives gedruckt wird, wenn es hängt.

+0

Hallo Bdonlan, yep das ist eine gute Idee. Leider habe ich es letzte Nacht versucht, nachdem ich irgendwo etwas Ähnliches gelesen habe. Ging bis zu 3 'vs, und es produzierte keine Warnungen/Fehler nach der Rückkehr aus dem Hang. –

4

ungerade. Ich kann Ihnen bei Ihrem Problem nicht helfen, aber ich habe einen Tipp, um es weniger ärgerlich zu machen: Verwenden Sie screen(1). Dadurch bleibt deine Shell am anderen Ende lebendig und du kannst nach dem erneuten Verbinden weitermachen.

Wenn Sie nur einen Befehl auf der anderen Seite ausführen müssen, empfehle ich, den Befehl als Option an ssh zu übergeben (es wird eine Verbindung herstellen, den Befehl ausführen, das Ergebnis anzeigen und die Verbindung trennen).

+1

Guter Tipp, wenn nicht eine komplette Lösung. Danke Aaron. –

+0

@BrianArmstrong Ich stimme dir zu. +1 obwohl, benutze ich Bildschirm die ganze Zeit, es ist toll für Multitasking sowieso, wenn Sie "teure" Befehle ausführen müssen. –

0

Nun, ich bin jetzt mit einem anderen drahtlosen Netzwerk verbunden und das Problem scheint verschwunden zu sein. Ich kann nicht mit Sicherheit sagen, was genau das verursacht hat (und ich habe keinen Login-Zugang zum WLAN-Router), aber dies scheint darauf hinzudeuten, dass es sich um etwas auf dem Router und nicht um den Server oder Client-Computer handelt.

Sowohl der alte Router als auch der neue Router waren Linksys WRT54G, also bin ich mir nicht sicher, was das Problem war. Hoffe es hilft jemandem!

0

Ich hatte ein ähnliches Problem mit 'cat' und sogar 'ls -l' verursacht ssh zu hängen (auf Ubuntu). Die Einstellung der MTU-Größe auf 1400 hat es für mich repariert.

Verwandte Themen