低速/不安定な接続でsshを使用するにはどうすればよいですか?


20

私は本当に遅いシェル接続を扱っています。それはクラウド内にあり、私はサーバーから非常に遠いです。インターネットを介しているため、接続が切断されることもあり、共有Wifiまたは3Gを使用している場合もあります。入力した内容をすぐに確認する方法はありますか?コマンドを入力して各文字を待つのは極悪です。


4
「スクリーン」を使用してセッションを保持し、切断したときに再接続できるようにします。
コネラック

回答:


24

Moshをお試しください。

Mosh(モバイルシェル)
ローミングを可能にし、断続的な接続をサポートし、ユーザーのキーストロークのインテリジェントなローカルエコーとライン編集を提供するリモートターミナルアプリケーション。

MoshはSSHの代替品です。特にWi-Fi、セルラー、および長距離リンクを介した、より堅牢で応答性に優れています。

Moshは、GNU / Linux、FreeBSD、Solaris、Mac OS X、およびAndroidで利用できるフリーソフトウェアです。


3
moshへの警告:(1)sshよりもCPUを集中的に使用します。(2)moshセッションが正常に終了しない場合、接続がリークされ、再確立できなくなります。(シェルボックスをクリーンアップする必要があります。そうしないと、多数のプロセスが実行されます)。
user606723

別の問題は、Suse(SLES)のようなLinuxディストリビューションにインストールすることはほぼ不可能であることです。openSuseパッケージとしてインストールするか、ソースからコンパイルするのに何時間も費やしました。
ゾンビ

$ sudoのでzypperでモッシュ(ドキュメントた内容に応じて)
dmourati

はい、これはopenSuseでは問題なく機能しますが、企業/クローズドディストリビューションでは、新しいオープンソースプロジェクトをインストールするのは非常に困難です。
ゾンビ

10

dmourati答えの代わりに(とも加えて):使用screenまたはtmuxあなたが切断されたとき、または他のものは、生きているのセッションを維持します。(再接続後にセッションに再接続するだけで、全画面プログラム[viなど]を使用しても、ターミナルを離れたときに端末が表示されます)。また、他の多くの利点(同僚とのセッションの共有など)があります(Mosh自身のよくある質問のように:

Q:ターミナルのスクロールバックバッファーが不完全なのはなぜですか?

Mosh 1.2は、端末の表示状態のみを同期します。Mosh 1.3では、完全なスクロールバックがサポートされます。この問題およびそこからリンクされている他の問題を参照してください。今のところ、回避策は、リモート側でscreenまたはtmuxを使用することです。

またrsync、接続が切断されたときにネットワーク経由で送信済みのパーツを再送信する必要なく、ファイルのコピーにも使用する必要があります。


2

遅延/ボトルネックがどこにあるかを確認する必要があります。インフラストラクチャへのアクセスを向上させるために、ローカルまたはプロバイダー側​​のいずれかで試行する必要があります。重要または重要なセッションを、tmuxまたはscreenマルチプレクサでラップします...

数字を教えてください。単純なSSHセッションが問題を起こすには特に悪い接続が必要です... VPNを介して飛行機から世界の反対側のシステムにアクセスする必要がありましたが、それでもあまり問題はありませんでした。これは永続的な問題ですか?何がtracerouteわかりますか?


この問題は、ホテルのwifiで頻繁に発生し、ルーターが少なすぎ、インターネットアクセスを共有するデバイス/ラップトップが多すぎます。また、共有ホテルの無線LANは、1つ以上の壁を通過するとms遅延が大幅に増えるため、ping時間で本質的にかなりぎこちなくなります。それもまた別の大きなボトルネックです。同様の状況が3Gでも発生し、携帯電話の塔までの距離がMSを追加します。SSHシェルを使用する場合、各キャラクターを待つ必要があります。200-400のMSはかなり厄介ですが、最大1秒のスパイクがあります...
ゾンビ

1

このスレッドの今後の読者のために、彼のブログの @lowellheddingsのヒントとscreenの使用は、この問題の克服に役立つ可能性があります。

サーバーがユーザーを切断しないように、秒単位でプロトコルno-opコードコードを自動的に送信するようにsshクライアントを構成できます。この設定は、他のクライアントではKeep-AliveまたはStop-Disconnecting-So-Muchと呼ばれることもあります。
/ etc / ssh / ssh_configファイルに次の行を追加します
。ServerAliveInterval 60
...

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