web-dev-qa-db-ja.com

SSHトンネリングには欠点がありますか?

私は最近、ドイツから到達できないいくつかのサイトやものを使用できるようにするために、プロキシとして使用したいVPSを「購入」しました。

私はまだSquidとOpenVPN(私は現在必要だと思います)をセットアップするのが面倒なので、ssh-tunnelingを使用します。

さて、数週間後、sshトンネリングがうまくいかなかったか、そして-そしてそれが私の質問です-私が心に留めておく必要のある警告/コントラスト/欠点があるかどうかを自問しましたか?

12
Nils Riedemann

トンネリング中にパフォーマンスの問題が発生しますTCP over TCPのため、2つの層が適応修正を行っています(スロースタート、輻輳回避、高速再送信を参照) RFC2001 )。

Biengはお互いを認識していないため、外部接続が失われると大きな問題が発生します。

このページ 現象を詳しく説明します。

edit:

TCP over TCPの問題は、それを防ぐ sshuttle を見てください。
この状況の詳細については、「Theory of Operation」というセクションをご覧ください。

11
Shadok

頭の中で思いつくのがパフォーマンスです。しかし、それはあなたがトンネルしているものの種類に本当に依存します。

3
Marcus

通常、レイテンシは増加しますが、SSHトンネリングを使用すると、スループットは通常の90%に達します。切断を防ぐために必ずServerAliveIntervalを設定し、スクリプトでそれをラップして、障害時にトンネルを再起動し続けるようにしてください。

主な欠点は、SOCKSを使用しない限り、TCPポートごとのトンネルであることです。 SOCKSは問題ありませんが、これによりレイテンシはさらに増加するようです。もちろん、すべてのクライアントがSOCKSをサポートしているわけではありません。

他のユーザーがトンネルを介して接続できるようにするには、クライアントまたはSSHサーバーでGatewayPortsを実行する必要がある場合があります。サーバーでは、これにはsshd_configへのrootアクセスが必要です。

TCPのアルゴリズムはカプセル化のもとでは適切に反応しないため、主なパフォーマンスの警告(他の人が指摘しているように)は、信頼性の低い接続ではこのアプローチがうまく機能しない可能性があります。

そうは言っても、SSHはほとんどの場合「正しいことをする」ようです。

1
Stu Charlton