前几天发布了一个防止GFWDNS污染的小工具 出乎意料的有热心网友很快跟进基于类似原理开发出了更好用的工具,详情点击这里。于是我又心血来潮写了这么一个小东西,希望能够起到抛砖引玉的作用。 源码地址:https://github.com/examplecode/mproxy 关于mproxy
前几天发布了一个防止GFWDNS污染的小工具 出乎意料的有热心网友很快跟进基于类似原理开发出了更好用的工具,详情点击这里。于是我又心血来潮写了这么一个小东西,希望能够起到抛砖引玉的作用。
源码地址:https://github.com/examplecode/mproxy
这是一个c语言实现的 极小的 http proxy 不依赖任何第三方库核心代码不足500行。
个人认为作用有两点:
翻墙的原理,一句话搞明白。
<code> Browser --> mproxy(local proxy) --> mproxy (remte proxy) -> 墙外的世界 </code>
是的,你出来需要一台本地代理外还需要在国外部署一台独立的服务器作为中转来达到翻墙的目的。mproxy不像一些翻墙软件使用GAE作为服务(GAE服务不允许建立socket),下面是你所需要的资源。
mproxy 的安装部署请参考以下网址:
https://github.com/examplecode/mproxy
其实原理基本原理上没有特别大的区别,只是mproxy实现更加简单,没有使用一些第三方的库比如openssl,异步socket,http lib等。只是使用最少的代码展示翻墙的基本原理而已。
mproxy刚刚开发完毕,实现简陋也没有经过大量测试。和成熟稳定的翻墙软件比还有一定差距,其主要目的也是用来学习和研究翻墙原理,目前这个东东完全没有达到一个产品级的水平,如果你喜欢折腾就继续尝试一下当成玩具,否则就此打住吧,免得你抱怨我发布一个垃圾的东西。目前经测试访问google,twitter,facebook,youtube等网站没有问题。
直接使用重定向命令即可
<code>./mproxy -l 8081 -D -d > out_8081.log 2>&1 </code>
下面是我用来测试的服务器(不保证哪天会关闭),如果你手头有一个unix like的系统可以先安装一个本地的mproxy,然后连接到我提供的测试服务器看看翻墙效果。服务器来自 digitalocean 的vps虚拟实例性能不高只有512M的内存,所以测试用户多了可能会响应较慢。
再你的本地服务器启动mproxy使用如下命令:
<code>./mproxy -h 162.243.247.187:8080 -E -d </code>
如果你想购买digitalocean的vps麻烦点击下面的链接,你懂的:)。
https://www.digitalocean.com/?refcode=0340b5e32fde
原文地址:最小的http proxy c语言实现 - 支持翻墙, 感谢原作者分享。