次のような状況があります。SSHトンネル経由でのみアクセスできるホストがいくつかあります。
SSH トンネルを確立し、接続に必要な 443 ポートをローカル ポートにバインドできます。
ssh -L 1443:example.com:443 -L 2443:other.com:443 -A -l username myproxy.com
これまでのところ、これはうまく動作しています。 を呼び出すとhttps://localhost:1443
、example.com を開くことができ、 を呼び出すとhttps://localhost:2443
、other.com を呼び出すことができます。
問題: 一部のアプリはこれを認識せず、通常のホスト名とポート経由で接続しようとします。
次の行をhosts
ファイルに追加すると、最終的な解決策に一歩近づくことができます。
127.0.0.1 example.com
127.0.0.1 other.com
これにより、ブラウザでhttps://example.com:1443
と を呼び出すことができるようになりますhttps://other.com:2443
が、ポートはまだ問題です。443
他のアプリケーションで動作させるには、両方のドメインをローカル ポートにマップする必要があります。
443
ローカル プロキシ サーバーをポートでリッスンし、ホスト名に基づいてトラフィックを または に転送する1443
必要があると思いますが、2443
ここがわかりません。
マシン上のすべてのアプリがホスト名/ポートのみを使用し、トラフィックが SSH トンネルを経由できるようにするには、どうすればよいですか?
答え1
を使用しますssh -D
。これにより、指定されたポート(通常は1080または9050)にSOCKS 5プロキシサーバーが作成され、ブラウザで設定してアクセスできます。すべてSSH トンネル経由で。
これは OpenSSH、PuTTY (plink)、Bitvise Tunnelier と同様に動作し、オペレーティング システム レベルの機能に依存しません。
たとえば、ssh -D 9050
実行中の場合、Firefox を次のように設定できます。
(Chromeではコマンドラインオプションその代わり。)