VPN接続でSSHFSを実行しています。このリモートファイルシステム上のファイルに1270バイトのチャンクを送信しようとすると:
head -c 1270 /dev/urandom > /path/into/the/sshfs/foo
ファイルシステム全体がフリーズし、アクセスしようとするプロセスがハングします。これは、sshfsプロセスを強制終了することでのみ修正できます。
代わりに1269バイトを送信しようとしても、問題は発生しません。
私はsshfsのコマンドラインオプションをいろいろ試してみましたが、これに影響を与えるオプションは1つだけであることがわかりました。
-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フォワーディング)のみに問題があるように見えることに注意してください。
ifconfig
、使用されるかどうかはわかりません。(家にいる間)まだ効果がありません。MTUを10000などの大きな値に設定しても、ここで問題を生成することはできません。明日、リモートサイトでMTUを減らして、そこで役立つかどうかをテストします。