HTTP プロクシ経由で SSH


iPhone + iProxy で(疑似)テザリング」での不満「SOCKS プロクシが使えない」を解決する方法があったのでメモ。

Corkscrewを使ってHTTP経由でSSHのトンネリング接続を行う – builder

http://builder.japan.zdnet.com/etc/20401475/

corkscrew を使うと指定したプログラムの通信を HTTP プロクシ経由で流してくれる。制限された環境で SSH したり git を使うのに重宝するが、一度穴を開けてしまえば何でもできちゃうので使い方によっては非常に危険なアプリだ。企業内のネットワークなどから使うときは管理者に利用の可否を問い合わせた方がいいかもしれない。

インストールと設定

今回は Mac を使うので brew で簡単にインストールできた。

$ brew install corkscrew

これだけで OK。次に ~/.ssh/config に設定を書き込む。

Host example.com.corkscrew
  HostName example.com
  ProxyCommand corkscrew 192.168.1.2 8888 %h %p 
  # 192.168.1.2 は iPhone に割り当てた IP アドレス

実行!

あとは簡単。いつも次のようにやっていたのを、

$ ssh example.com

次のようにすれば OK。

$ ssh example.com.corkscrew

SSH 以外のアプリケーションを使う

SSH 以外に使いたいアプリケーションがあるのならポートフォワーディングで対応する。

ssh ポート転送

http://www.geocities.jp/ko_tyche/linux/port.html

コマンドラインからオプションを指定する方法もあるが、長くなるので ~/.ssh/config に書いてしまおう。

Host example.com.corkscrew
  HostName example.com
  ProxyCommand corkscrew 192.168.1.2 8888 %h %p 
  # 192.168.1.2 は iPhone に割り当てた IP アドレス
  # LAN 内の Web サーバ
  LocalForward 10080 192.168.10.10:80
  # VNC
  LocalForward 15900 192.168.10.20:5900
  # リモートデスクトップ接続
  LocalForward 13389 192.168.10.30:3389
  # 他の機器からの接続を受け付ける
  # GatewayPorts yes

最後の GatewayPorts yes を使うと同じネットワーク内の機器からも接続できて便利だが、同時に危険も伴う。

後は、指定したポートを使って接続するだけ。自鯖へ VNC 接続したいなら Finder で Command ⌘ + K して vnc://localhost:15900 と打ち込むだけだ。

コメントを残す