最简单的可能的反向代理
我正在寻找一种方法来简单地设置本地连接到远程站点的代理。 我不想在系统中安装任何东西。 如果我可以用一个命令行调用而不是用一个单独的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
)或期望被正确的Host
( node-reverse-proxy
)调用,而不是重写。
更新:我现在用一个ProxyPass
/ ProxyPassReverse
configuration与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/