SSH サーバーを簡易プロキシとして使う


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」ボタンをクリックすれば良いです。

脚注

  1. -f はバックグラウンド実行オプションです。 []