それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

簡易プロキシをSSHのダイナミック転送で実現する

Dyamic転送が便利と聞きました。ダイナミック転送。使えるそうなので実際試しました。仕組みの解説はめんどくさいので省略.

通称はSSHのポートフォーワーディングとかポートフォーワードなんて言われる.それをダイナミック(動的)にポート指定する仕組み

SSHの接続オプションでプロキシ接続が出来る

  • SSHに接続して転送ONにする
  • localhost:1080 に接続すれば
  • リモートサーバーから外に出られる。

手っ取り早く言えばSSHサーバーがプロキシサーバーになると言うことです。

使い方

  • putty などのSSHクライアントで接続する
  • ダイナミック転送を有効にする
  • 有効になるとlocalhost:1080 がプロキシサーバーになる
  • ブラウザでプロキシサーバーlocalhost:1080を指定

以上でSSH接続先からWEBアクセスが出来る.

puttyでのダイナミック転送。

通常の場合PUTTYでトンネル作れば解決。ダイナミックで指定すればOK

接続後に指定する方法.

  1. 接続を指定する.
  2. トンネルを指定する
  3. ダイナミックと、Localhostのポート(源ポート)を指定して
  4. 追加を押す
  5. 適用を押す(適用は押し忘れることが多いです)

SSHコマンドの場合

ssh -D 1080 takuya@some.host.example.jp

putty 付属の pfwd.exe を使う場合

pfwd.exeという転送専用のコマンドが付いている.これをつかえばPuttyのメインウインドウが開かずタスクトレイに常駐するので便利.

pfwd.exeの設定方法

pfwd.ini を作って指定する。 pfwd.exe と同じフォルダに置く
pfwd.ini の使い分けは簡単.引数にファイル名を渡すだけ.

pfwd.exe hogehoge.ini

簡単。これで複数のホストにプロキシサーバーできる


ま、SSHできるとなんでも有りなので、SSH接続自体を止める必要があるんだけど.ポート80版でSSHサーバー作っておくとか回避はいくらでもあるので,止めるだけ無駄かと思う.

まとめSSHのポートフォワーディング

Socksプロキシとして動作している.
Localhostのポートに来た通信を転送して,接続先からのリクエストしてポートフォーワーディングしている。