デバッグをしていて、海外からウェブアクセスしたい場合が結構あります。コマンドラインツールだったら、単純に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経由だとわかる。