
Я запускаю SSHFS через VPN-соединение. При попытке отправить фрагмент размером 1270 байт в файл на этой удаленной файловой системе:
head -c 1270 /dev/urandom > /path/into/the/sshfs/foo
вся файловая система зависает и позволяет любому процессу, который пытается получить к ней доступ, зависнуть. Это можно исправить, только убив процесс sshfs.
Если я попытаюсь отправить 1269 байт, никаких проблем не возникнет.
Я много экспериментировал с параметрами командной строки sshfs и обнаружил, что только один параметр имеет какое-то влияние на это:
-o max_write=1240
Если я передам здесь значение меньше 1270, то предел, при котором начинается ошибка, уменьшится до этого значения + 1 (хотя значение 300 уменьшило его до 1183). К сожалению, увеличение значения не помогает, предел остается на уровне 1270 байт.
Это что-то с буферами, так или иначе. Если я использую две последовательные записи, все работает нормально:
(head -c 1269 /dev/urandom
head -c 1269 /dev/urandom) > /path/into/the/sshfs/foo
Похоже, это не проблема базового ssh, потому что
ssh remote_host "bash -c 'head -c 2000 /dev/zero | tr \\\0 0'" | wc -c
работает отлично и печатает 2000
как и ожидалось.
Однако пересылка X, похоже, тоже не работает, так что, возможно, этоявляетсяпроблема с ssh ниже.
Я попробовал изменить размер MTU с 1412 до 1500:
ifconfig tun0 mtu 1500
но без всякого эффекта.
Это известная проблема? Можно ли как-то исправить/предотвратить/обойти это?
EDIT: Я использую FritzBox (домашний маршрутизатор), VPN (судя по всему, в стиле «cisco», но я не эксперт в этой теме) и Ubuntu 16.04 для доступа к нему извне.
Я также заметил, что когда я тестирую это через мобильную телефонную линию с ноутбуком, проблема не возникает. Она возникает только тогда, когда я нахожусь на удаленном сайте, который находится за каким-то ограничивающим брандмауэром. Обратите внимание, что VPN в целом работает, только аспект sshfs (и переадресация X) кажутся проблемными.
решение1
У вас, скорее всего, проблема с MTU, вызванная накладными расходами VPN. Увеличение MTU, как вы сделали, не решит проблему, поскольку это делает MTU больше, чем доступный максимальный размер пакета для медиа (я предполагаю, что вы не используете кадры jumbo в среде только lan).
Действительно, решением может быть УМЕНЬШЕНИЕ MTU туннельного устройства.
Вы не указали VPN или маршрутизаторы. Мы решаем эту проблему с помощью ограничения MTU на уровне ОС. В качестве альтернативы/дополнения, если вы используете OpenVPN, есть директивы, которые вы можете использовать для фрагментации пакетов, например, с помощью mssfix - вы можете посмотретьhttps://www.sonassi.com/help/troubleshooting/setting-correct-mtu-for-openvpnа также вариант фрагмента -https://blog.hambier.lu/post/solving-openvpn-mtu-issues