只有一个文件的 HTTP(s) 代理服务器

2014-08-20 09:18:36 +08:00
 binux

每次 python -m SimpleHTTPServer 是不是很爽,有时候想弄个HTTP代理,要装个 squid 还要配一大堆参数。

现在只需要一个文件(标题党了一下。。还要tornado。。),就能跑出一个代理服务器!

https://github.com/binux/pyproxy

不止这样!甚至不需要下载,只要一个命令(限*nix),你立即拥有!

python -c "u='https://github.com/binux/pyproxy/releases/download/v0.1/pyproxy.zip';import urllib2,sys,tempfile;f=tempfile.NamedTemporaryFile(suffix='.zip');urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));f.write(urllib2.urlopen(u).read());sys.path.insert(0,f.name);f.flush();from pyproxy import main;main();"

不不不,这还不够,这个代理还支持 API 方式调用,支持各种用户验证,支持 HTTPS!看 git 就知道了。

这几年写过好多个不同功能代理,技能点往几个方向发展,全异步的流式代理,API 控制的代理,和地址改写的web代理。试试看能不能合在一起。

6318 次点击
所在节点    分享创造
8 条回复
kukat
2014-08-20 09:44:24 +08:00
signature 是跟 https://github.com/mloughran/signature 一样的吗?
lonely520224
2014-08-20 09:48:39 +08:00
看起来不错!
binux
2014-08-20 10:08:59 +08:00
@kukat 不知道哎,有使用想给某个 url 做代理,但是不想别人知道用户米密码,那就给那个 url,path,host 授权就可以了。
spritevan
2014-08-20 10:30:24 +08:00
写个 setup.py

pip install git+ssh://git@github.com/binux/pyproxy.git

不比那堆 python -c "..." 好看多了
binux
2014-08-20 10:51:04 +08:00
@spritevan pip 需要安装啊,install 还污染环境。。python -c 有个 python 就能用
spritevan
2014-08-20 11:22:49 +08:00
@binux >< 我有一个专用的 playground virtualenv
nicai000
2014-08-20 11:27:15 +08:00
对于部署来说, 是否单独文件依赖少区别很大, 鄙视标题党.
jackton
2014-08-20 21:46:17 +08:00
想要带缓存的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/128858

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX