28

リモート サイトに接続するプロキシをローカルで簡単にセットアップする方法を探しています。システム自体には何もインストールしたくありません。単一の構成ファイルをいじるのではなく、単一のコマンドライン呼び出しでそれを呼び出すことができれば、それは素晴らしいことです.

目的は、私が開発しているローカル アプリと、他の誰かが提供し、HTTPS を使用するリモート サーバーとの間のトラフィックを傍受することです。

Ruby、Python、または Node パッケージが望ましいので、次の行に沿って何かを実行できます。

mkdir simplest-proxy; cd simplest-proxy; bundle init
echo "gem 'simplest-proxy'" >> Gemfile; bundle --path vendor/bundle
bundle exec bin/simplest-proxy -p 8080 https://remote.site.example.com/

また

virtualenv simplest-proxy; cd simplest-proxy
bin/easy_install simplest-proxy
bin/simplest-proxy -p 8080 https://remote.site.example.com/

また

mkdir simplest-proxy; cd simplest-proxy
npm install simplest-proxy
node_modules/.bin/simplest-proxy -p 8080 https://remote.site.example.com/

これにより、アプリが に接続できるようになり、リクエストがリモート サイトに転送されます (ヘッダーやその他の必要なものがlocalhost:8080書き換えられます)。WireShark で見て、何が起こっているのかを知ることHostができます。lo

私は pypi、rubygems、npm をざっと見てきましたが、これまでに見つけたのは、機能していない ( proxylet、そうでなければ非常に有望に見えた) か、はるかに複雑なシナリオを想定してセットアップを必要とする ( dj-revproxy) か、書き換えるのではなく、正しいHost( ) で呼び出します。node-reverse-proxy

ProxyPass更新: 今のところ、 / config を使用して Apache を使用してProxyPassReverseいますが、非常にやり過ぎだと感じており、構成ファイルをいじる必要があります。

更新: 適用できない別のソリューションは、リモート サイトをエミュレートするものではなく、実際の HTTP プロキシです。リモート サイトは HTTPS サイトであるため、アプリがプロキシ内で CONNECT を実行するだけで、何も得られません。

4

1 に答える 1

43

http://mitmproxy.org/ を発見!

私のユースケースは以下でカバーされています:

mitmproxy -p 8080 -P https://remote.site.example.com/

しかし、もっとあります。また、完了したすべてのリクエストを表示するための ncurses UI も提供し、それらを調べることができます。これにより、WireShark が不要になります。

質問に示されているように、ディストリビューション パッケージ インストーラーまたは easy_install を使用してインストールします。

virtualenv mitmproxy; cd mitmproxy
bin/easy_install mitmproxy
bin/mitmproxy -p 8080 -P https://remote.site.example.com/

編集:

mitmproxy バージョン 3 の場合、引数は次のようになります。

mitmproxy -p 8080 --mode reverse:https://remote.site.example.com/
于 2013-06-14T12:57:58.467 に答える