SSH にはポートフォワーディングの機能が備わっています。良く使われるのは -L
オプションで,ローカルのポートをリモートのポートに転送するものです。他に -R
と -D
という 2 つのポートフォワーディングのオプションがあり,今回紹介したいのは -D
オプションです。
-D
オプションはダイナミック (dynamic) の頭文字で,文字通り動的なポートフォワーディングを可能にします。ローカル側ではソケットを割り当てるので, SOCKS サーバーをプロキシに設定できるアプリケーションであれば,そのままバインドしたアドレス・ポートが SOCKS サーバーになります。
例えば, ssh.example.com という SSH サーバーに対して,クライアントが ssh -f -D 8080 ssh.example.com
という接続をしたとします[A]。このとき,ローカルの適当なアプリケーション (例えばブラウザ) のプロキシ設定で, SOCKS サーバーを localhost:8080 と指定すれば良いわけです。
ちなみに PuTTY でダイナミックポートフォワーディングを実現するには,「Connection」 → 「SSH」 → 「Tunnels」 の 「Source port」にポートを指定して「Add」ボタンをクリックすれば良いです。
脚注
-f
はバックグラウンド実行オプションです。 [↩]