デバッグをしていて、海外からウェブアクセスしたい場合が結構あります。コマンドラインツールだったら、単純にsshでリモートマシンに入って、curl
コマンドを打てば良いのですが、jsの実行やグラフィカルなUIのテストをしたい場合は、ブラウザでのアクセスが必要になります。
こういう場合に、リモートにあるマシンにウェブのporxyサーバを立ち上げて、そこ経由でアクセスすることにまります。 proxyサーバはインストールではなく、Pythonスクリプトベースのものがたくさんるので、これを使います。 5分あればセットアップできます。
構成図はこんな感じです。
リモートサーバにPythonのproxyを準備する
いろいろあるけど、今回はpython-proxyを使います。
### リモートマシンのシェル
$ pip3 install pproxy
$ pproxy -l http://localhost:8899
Serving on localhost:8899 by http
sshのポートフォワードで、ローカルのportをリモートのportにトンネルさせる
sshのポートフォワードで、ローカルとリモートを繋ぎます。
- リモートホスト:
34.95.141.133
- ローカルの転送Port:
8080
- リモート側の転送ホストとPort:
localhost:8899
上記の場合だとこのコマンドでトンネル作成できます。
### ローカルマシンのシェル
$ ssh [email protected] -L 8080:localhost:8899
...
ブラウザでproxy設定をする
ローカルのブラウザのproxy設定を以下の通りに変更する。
- proxyサーバ:
localhost
- proxy Port:
8080
ブラウザからアクセス
この記事で書いた自分のアクセス元のIPロケーションを教えてくれるifconfig.co
にアクセスしてみる。
ちゃんとリモートサーバのロケーション情報が返ってきて、proxy経由だとわかる。