Я использую 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
но без какого-либо эффекта.
Это известная проблема? Можно ли как-то это исправить / предотвратить / обойти?
РЕДАКТИРОВАТЬ: Я использую FritzBox (домашний маршрутизатор) VPN (очевидно, в стиле "Cisco", но я не эксперт в этой теме) и Ubuntu 16.04 для доступа к нему извне.
Я также заметил, что, когда я проверяю это через мобильную телефонную линию с ноутбуком, проблема не возникает. Это происходит только когда я на удаленном сайте, который находится за каким-то ограничительным брандмауэром. Однако обратите внимание, что VPN работает в целом, только аспект sshfs (и переадресация X) представляется проблематичным.