BLOGTIMES
2008/12/13

SSHをSOCKS Proxyにする

  ssh  networking  PuTTY 
このエントリーをはてなブックマークに追加

開発環境への接続などでSSHトンネルを使わなければいけない機会というのはよくあるのですが、使うポートやサーバーが多くなってくるとPutty(SSH)の設定が-Lだらけになってしまいます。その管理が面倒なので困っていたのですが、SSHをSOCKS Proxyとして扱うことによりトンネルの設定を大幅に簡素化できる方法があることが分かりました。

2004-12-15 - てっく煮ブログ

ssh のポートフォワーディングにはリモート・ローカル・ダイナミックの3種類があって、前の2つはよく知られているけど、ダイナミックはいまいち知られていない。これは、なんと、ssh を Socks Proxy として使うことができるのです。localhost の Socks Proxy 経由でアクセスすると、ssh でログインした先からコネクションがはられているように見える訳です。

これは便利そうということでman sshをしてみると、確かに-Dオプションがあります。

-D [bind_address:]port

Specifies a local “dynamic” application-level port forwarding. This works by allocating a socket to listen to port onthe local side, optionally bound to the specified bind_address. Whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act as a SOCKS server. Only root can forward privileged ports. Dynamic port forwardings can also be specified in the configuration file.

ということで、この設定を自分の開発マシンであるノートPCのPuttyに仕込んでみることにしました。

Puttyの設定

Puttyについては、通常通りSSHの設定をした状態で「接続→SSH→トンネル」を開き、源ポートにSOCKS Proxyとして使う適当なポートの番号を入れ、送り先のところにあるダイナミックのラジオボタンを選択し、追加ボタンを押します。

下記の画像は源ポートに10080を入力して追加を押した例です。
この状態でセッションを開けば自分のPCの10080がSOCKS Proxyになっています。

Puttyのダイナミックポートフォワード設定 - SSHをSOCKS Proxyにする

ブラウザの設定

後は自分の使いたいアプリケーションでSOCKS Proxyの設定をするだけです。
下記の画像はFirefoxの設定例になります。

Firefoxでの設定例 - SSHをSOCKS Proxyにする

この状態でウェブを閲覧すると、SSH先のサーバからアクセスしているように見えるはずです。
意外と簡単なので大満足です。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2839
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン