最简单的可能的反向代理

我正在寻找一种方法来简单地设置本地连接到远程站点的代理。 我不想在系统中安装任何东西。 如果我可以用一个命令行调用而不是用一个单独的configuration文件来调用它,那就太棒了。

其目的是嗅探我正在开发的本地应用程序与其他人正在提供的使用HTTPS的远程服务器之间的stream量。

最好是一个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 ,这将转发请求(并重写Host头和其他任何必要的)到远程站点。 我可以在WireShark中观看,看看发生了什么。

我已经在pypi,rubygems和npm中快速浏览了一下,但是到目前为止我发现的是不工作( proxylet ,否则看起来非常有希望),意图用于更复杂的场景,并需要设置( dj-revproxy )或期望被正确的Hostnode-reverse-proxy )调用,而不是重写。

更新:我现在用一个ProxyPass / ProxyPassReverseconfiguration与Apache,但它感觉大量矫枉过正,需要玩configuration文件。

更新:另一个不适用的解决scheme是一个实际的HTTP代理,而不是一个模拟远程站点。 由于远程站点是一个HTTPS站点,这只会让我的应用程序在代理内部进行连接,并没有得到任何东西。

findhttp://mitmproxy.org/ !

我的用例覆盖了:

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

但还有更多。 它还提供了一个ncurses UI来显示所有请求,并允许你检查它们。 这使WireShark成为不必要的。

按照问题中所示,使用distro软件包安装程序或easy_install进行安装。

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