
Ich führe SSHFS über eine VPN-Verbindung aus. Beim Versuch, einen Block von 1270 Bytes in eine Datei auf diesem Remote-Dateisystem zu senden:
head -c 1270 /dev/urandom > /path/into/the/sshfs/foo
das gesamte Dateisystem friert ein und lässt jeden Prozess hängen, der versucht, darauf zuzugreifen. Dies kann nur behoben werden, indem der SSHFS-Prozess beendet wird.
Wenn ich stattdessen versuche, 1269 Bytes zu senden, tritt kein Problem auf.
Ich habe viel mit den Kommandozeilenoptionen von sshfs herumgespielt und festgestellt, dass nur eine Option darauf Einfluss hat:
-o max_write=1240
Übergebe ich hier einen Wert kleiner als 1270, wird die Grenze, ab der der Fehler auftritt, auf diesen Wert + 1 gesenkt (bei einem Wert von 300 wäre es allerdings 1183). Leider hilft eine Erhöhung des Wertes nichts, die Grenze bleibt bei 1270 Bytes.
Irgendwie ist das so eine Sache mit den Puffern. Wenn ich zwei aufeinanderfolgende Schreibvorgänge verwende, funktioniert alles einwandfrei:
(head -c 1269 /dev/urandom
head -c 1269 /dev/urandom) > /path/into/the/sshfs/foo
Es scheint auch kein Problem des zugrunde liegenden SSH zu sein, da ein
ssh remote_host "bash -c 'head -c 2000 /dev/zero | tr \\\0 0'" | wc -c
funktioniert einwandfrei und druckt 2000
wie erwartet.
Allerdings scheint die X-Weiterleitung auch nicht zu funktionieren, also vielleichtIstein SSH-Problem unten.
Ich habe versucht, die MTU-Größe von 1412 auf 1500 zu ändern:
ifconfig tun0 mtu 1500
aber ohne Wirkung.
Ist das ein bekanntes Problem? Kann ich das irgendwie beheben/verhindern/umgehen?
BEARBEITEN: Ich verwende ein VPN (offenbar im „Cisco“-Stil, aber ich bin kein Experte auf diesem Gebiet) einer FritzBox (einen Heimrouter) und ein Ubuntu 16.04, um von außen darauf zuzugreifen.
Mir ist auch aufgefallen, dass das Problem nicht auftritt, wenn ich dies über eine Mobiltelefonleitung mit einem Laptop teste. Es tritt nur auf, wenn ich mich am Remote-Standort befinde, der sich hinter einer restriktiven Firewall befindet. Beachten Sie jedoch, dass das VPN im Allgemeinen funktioniert. Nur der SSHFS-Aspekt (und die X-Weiterleitung) scheinen problematisch zu sein.
Antwort1
Sie haben höchstwahrscheinlich ein MTU-Problem, das durch den Overhead des VPN verursacht wird. Eine Erhöhung der MTU wie von Ihnen wird das Problem nicht beheben, da die MTU dadurch größer wird als die verfügbare maximale Paketgröße für das Medium (ich gehe davon aus, dass Sie in einer reinen LAN-Umgebung keine Jumbo-Frames verwenden).
Eine Lösung könnte tatsächlich darin bestehen, die MTU des Tunnelgeräts zu VERRINGERN.
Sie haben weder VPN noch Router angegeben. Wir lösen dieses Problem mit MTU-Klemmung auf Betriebssystemebene. Alternativ/zusätzlich gibt es bei Verwendung von OpenVPN Anweisungen, mit denen Sie Pakete fragmentieren können, z. B. mit mssfix. Sehen Sie sich dazu Folgendes an:https://www.sonassi.com/help/troubleshooting/setting-correct-mtu-for-openvpnund auch die Fragment-Option -https://blog.hambier.lu/post/openvpn-mtu-probleme-lösen