iphoneからSSHのsocksプロキシを使う(macbookがあるとき)
iphoneとmacbookが同じwifiネットワーク上にあるとき、macbookからのSSH接続をiphoneからsocksプロキシとして使うメモ。
需要的には海外出張でキャリア回線が使えない上にどうにか日本からしか見られないコンテンツを見たい、自宅サーバーにSSHでトンネルすれば…みたいなものすごいニッチなのしかなさそうだけど、単純におもしろい気もするので書いておく。
やってることは
なので、macbookである必然性はそこまでない。windowsでもcygwinとかで頑張れば行けそうな気がする。
環境:
macbook: OSX 10.9.5 (Mavericks)
iphone: iOS 9.0.2
手順
1. macbookのwebserver機能を有効にする。
Mavericksならターミナルから
$ sudo apachectl start
でよい。それ以外なら参考URLの一番上でいけるはず。
とりあえずmacbookのブラウザから http://localhost にアクセスして it Works! というページが出るのを確認する。
iPhoneから繋がることを確認する。ターミナルで
$ hostname
として nos-MacBook と出た場合iphoneのsafariで http://nos-macbook.local と打つと it Works! が出るはず。出なければipアドレスを使うなりすればいいはず。
2. iPhone用のプロキシ設定ファイルを置く
/Library/WebServer/Documents/proxy.pac として
function FindProxyForURL(url, host) { return "SOCKS nos-macbook.local:XXXX"; }
を置く*1。アドレスは手順1.で確認したやつ。XXXXは9999とか適当な数字にする。あんまり小さかったり大きかったりすると多分失敗する。
3. iphoneのプロキシを設定
設定 → WiFi → 接続のiマークを押すと詳細設定に行く。一番下のHTTPプロキシのところで自動を選ぶ。アドレスの欄に http://nos-macbook.local/proxy.pac を入れる。
手順4.でトンネルを用意する前のこの時点でも(プロキシなしで)ネットに繋がるが、これが"正しい"挙動なのかはよくわからない。
参考
*1:実体はjavascriptらしい