OpenVPNを介したSSHセッションが数行後に切断/ロックアップする


12

私は、Debian 6(ARM)を実行している同一のファンレスPCを多数持っています。これらのほとんどは、コムキャストを介して接続され、問題なく動作します。「WiMax」モデムに接続されていて、通信に問題があるものがあります。

具体的には、これらのいずれかにsshして 'ps -ax'のようなコマンドを実行すると、約3行戻り、セッションがロックされます。そのまま放置すると、最終的には「ピアによってクローズされたセッション」でクローズされます。

私が試したこと:

  • ssh -vvv →エラーメッセージなし
  • ssh <user@host> 'command'→これにより、コマンドの完全な出力が返されることがあります。まったく接続できない場合があります。

他に試すことの提案はありますか?

一部のコマンドを正常に実行できることがわかりました。たとえば、12回以上returnキーを押しても問題ありません。cd ~その後、lf同様に動作しdf -hます。df何度も正常に実行できますが、より多くの出力(たとえばls /etc)を使用して何かを試行するとすぐに、それがロックします。

OpenVPNを使用してこれら2つのホスト間で通信しようとしていることは違いますか?


パスMTUが構成済みインターフェースMTUよりも低くないことを確認してください。SSHはフラグメント化しないため、DFビットが設定されていると、代わりにパケットがドロップされます。より詳細な説明については、こちらをお読みください。
アーロンコプリー2014

1
明らかな影響なしに、すべてのインターフェイスのMTUを1400に設定しようとしました。でテストされてping -c 1 -s $((5000-28)) -M do machine-ipいる返さ1500 -マシンと同じ
ethrbunny

1
tracepath -n <ip>これを確認します:1500はずっと許可されています。
ethrbunny 2014

1
私の無知を許してください、しかし-Tこの場合どのように助けますか?
アーロンコプリ14

2
<2番目の段落を読みます> MTUの問題です。<さらに読む>はい、MTUの問題です。説明については、このスレッドを参照してください。他のスレッドでは説明されていない点が1つあるため、重複として閉じることには投票しません。問題を修正するためにVPN構成で何を変更する必要があるかです。
Gilles「SO-邪悪なことをやめなさい」

回答:


11

MTUの問題の症状があります。一部のTCP接続がフリーズし、多かれ少なかれ、特定のコマンドまたはURLで再現可能ですが、全体的なパターンを簡単に識別できません。わかりにくい症状は、インタラクティブなsshセッションは、大きな出力でコマンドを実行しない限りうまく機能することです。説明については、「Linux over PPPoE上の一部のhttpsサイトにアクセスできない」を参照してください。

OpenVPNには、MTU関連のオプションがいくつかあります。マニュアルで「mtu」を検索してください。どのオプションを変更する必要があるかについて自信を持てるほどの経験はありません。(Wimaxモデム構成で何かを変更することも可能です。)変更する可能性が最も高いオプションはmssfix、問題が解決するまで値を小さくしてみます。デフォルトは1450です。1400くらいのようなものがあなたの問題を解決するかもしれません。試してくださいopenvpn --fragment 1200 -mssfix。効果がある場合は、壊れ始めるまで値を増やします。


mssfix 1200サーバーの設定と再起動から始めています。ここまでは順調ですね。これが機能する場合、1300または1400に上げて、何が起こるかを確認します。すべてのリモート構成を変更するにはクライアントが多すぎるため、サーバー側で行う必要があります。
ethrbunny 2014

MTUだとわかった!
アーロンコプリー2014

3

Gillesの答えは完全に正しいですが、これには別の潜在的な原因もあります。

OpenVPNのバージョン2.3.0に大きなデータのチャンクを送信するときにクライアントを切断するバグがありました:https : //community.openvpn.net/openvpn/ticket/263

この問題は、TCPを使用している場合にのみ発生しました。UDPはまったく影響を受けませんでした。


3

私たちにも同じ問題があり、それは実際にMTUの問題でした。しかし、私たちにとっての問題は、openVPN構成ではなく、tun0インターフェイスにありました。

解決方法:まず、通過した最大パケットサイズを見つけます。

ping <host> -s 1500 -M do

値が通過するまで1500の値を減らします(私たちの場合、1350)。

正しい値が見つかったら、tun0インターフェイスを次のように変更します。

sudo ip link set dev tun0 mtu 1350

ここセバスチャンによって提案されたように。その後、VPNは順調に進んでいました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.