SSH-Verkehr über OpenVPN-Verbindung friert ein, wenn ich eine Datei katapultiere

13

Ich habe einen openvpn (Version 2.1_rc15 an beiden Enden) Verbindungsaufbau zwischen zwei Gentoo-Boxen mit gemeinsamen Schlüsseln. es funktioniert größtenteils gut. Ich benutze MySQL, HTTP, FTP, SCP über das VPN ohne Probleme. Aber wenn ich über das VPN vom Client zum Server schicke, passieren seltsame Dinge. Ich kann mich einloggen, ich kann einige Befehle ausführen. Aber wenn ich versuche, eine ncurses-Anwendung wie top auszuführen oder eine Datei zu catchen, wird die Verbindung unterbrochen und ich muss die ssh-Sitzung trennen.

Ich kann zum Beispiel "echo blah; echo.; Echo blah" ausführen und es werden die drei Textzeilen über die ssh-Sitzung ausgegeben. Wenn ich aber "cat / etc / motd" ausführe, friert die Sitzung in dem Moment ein, in dem ich die Eingabetaste drücke.

Ich habe openvpn 2.1.1 auf meinem Mac kompiliert und von meinem Gentoo-Client über mein Konfigurationsverzeichnis kopiert. Die Sitzungen mit verbundenem Mac und ssh funktionierten einwandfrei, ohne einzufrieren.

Ich habe es dann auf meiner älteren Gentoo-Box (2.6.26 Kernel) kompiliert, die ich wegen einer aussterbenden Festplatte in den Ruhestand versetze, und ssh drüber funktioniert auch einwandfrei.

Warum scheitert es an meiner brandneuen Gentoo-Box? Ich habe versucht, drei verschiedene Kernel zu kompilieren, falls dies der Fall sein sollte, aber ansonsten sollte es keinen Unterschied zwischen meinen älteren und meinen neueren Gentoo-Boxen geben, den ich mir vorstellen kann.

Irgendwelche Vorschläge, was los ist?

Pawz Lion
quelle
In meinem Fall ssh, cat, top& HTTP alles funktioniert, aber scpnicht (wäre es 100% zeigt , übertragen und dort hängen). Das Absenken der MTU auf 1380 hat das Problem behoben.
Roger Dueck

Antworten:

13

riecht nach mtu problem. Versuchen Sie, es zu senken, wie im offiziellen Handbuch oder in diesem Blog- Beitrag beschrieben.

pQd
quelle
2
Vielen Dank. Ich hatte versucht, die MTU der Ethernet-Schnittstelle ohne Ergebnis zu löschen, aber das Hinzufügen von "Fragment 1400" zu Client und Server, wie in dem von Ihnen erwähnten Beitrag, funktionierte hervorragend. Ich frage mich, warum die ältere Gentoo-Box gut funktioniert hat, die neuere aber nicht. Na ja, jetzt behoben. Danke
Pawz Lion
Vielen Dank. Dies hat mein Problem behoben. Im Büro habe ich genau das gleiche Setup ohne Probleme, aber bei mir zu Hause hängt es in einigen Fällen. Wenn ich eine URL einer Datei mit einem - darin rolle, hängt sie. Ohne ein - funktioniert es: D, und wenn ich lange Zeilen in der Datei aufbreche, funktioniert es auch. Es macht keinen Sinn, aber danke für die Lösung.
Peter
1
Beachten Sie die mtu-test- Option von openvpn, die im oben verlinkten Blog-Beitrag erwähnt wird. Dadurch wird die MTU Ihres OpenVPN-Tunnels empirisch getestet, sodass Sie wissen, welche Werte beim Festlegen von Fragment und Mssfix zu verwenden sind und nicht nur raten müssen. Ich habe viele Beiträge im Internet gesehen, in denen mtu / fragment auf 1400, 1350, 1200 usw. gesetzt wurde. Als ich jedoch mtu-test ausführte, bestimmte openvpn, dass die MTU 1189 ist!
Jdhildeb
6

Dieser Befehl löst es für mich:

$ sudo ip link set dev tun0 mtu 1350 && echo ":)"

Sie können die Einstellungen für tun0 mit überprüfen

$ ip a s

Prost!

Sebastián A. La Spina
quelle
1

Ich hatte ein ähnliches Problem, als OpenVPN eine Verbindung über 3G mit schlechter Abdeckung herstellte und keinen Paketverlust mehr aufwies. Die Umstellung auf TCP anstelle von UDP behebt alle Probleme, die ich danach hatte. Hoffe das hilft dir weiter.

valentt
quelle
Das Betreiben eines VPN über TCP hat seine eigenen Probleme. Die Behebung des MTU-Problems und das Verbleiben bei UDP funktionieren wahrscheinlich besser als die Verwendung von TCP.
Kasperd
Für den OP-Wechsel ist wahrscheinlich nur MTU der bessere Vorschlag als der Wechsel von TCP zu UDP. Wenn Sie eine extrem schlechte, so schlechte Verbindung haben, dass OpenVPN nicht einmal eine stabile Verbindung aufbaut, sollten Sie TCP anstelle von UDP versuchen. In extrem schlechten 3G-Fällen funktionierte der Wechsel zu TCP nur für mich.
Valentinstag
1

Ja, es geht nur um MTU.

Aber in meinem Fall habe ich ein noch seltsameres Problem. Zu Hause friert es mit einem OpenVPN-Windows-Client ein. Aber in meinem Büro funktioniert es gut.

Ich habe versucht, es auf meinem ADSL-Modem ohne Erfolg zu ändern. In meinem Büro verwende ich ein Kabelmodem und einen anderen ISP.

Nach dem Ändern der MTU des Windows TAP-Adapters auf 1200 funktioniert es einwandfrei. Etwas Hoches würde für mich einfrieren.

Bildbeschreibung hier eingeben

Luiz Vaz
quelle
0

Ich habe tunnelblick anstelle von OpenVPN verwendet und konnte keine Konfiguration für den MTU-Wert finden. Stattdessen fand ich die Schnittstelle für das VPN in der Ausgabe von ifconfig(in meinem Fall war es utun0) und stellte die MTU dafür manuell wie folgt ein:

ifconfig utun0 mtu 576

Danach würde meine SSH-Sitzung nicht mehr einfrieren.

Zoltán
quelle