一直以来主要的翻墙工具都是GAppProxy,但是GAppProxy无法解决SSL问题,HTTPS会弹出证书无效的警告,让我一直很头疼。在学校的IPV6上网时有IPV6环境还可以使用IPV6的一些代理,在家里就不得不使用基于GAE的代理了,因此我找到了GAppProxy的替代解决方案——WallProxy。
获得WallProxy源码
下载WallProxyV0.3.9b2的源码
http://wallproxy.googlecode.com/files/wallproxyv0.3.9b2.7z
解压缩之后得到gae_server,php_server,local,local_video,module等几个目录。
其中gae_server是GAE版服务器端源代码,php_server是PHP版服务器端源代码,local是本地客户端,local_server是本地视频客户端,可用来下载/观看视频,module是windows下python库文件的兼容包。
将服务器端源码上传至服务器
在http://appengine.google.com中新建一个GAE应用。
进入gae_server目录,修改app.yaml文件中的application:为自己新建的GAE应用的ID。
然后执行命令python appcfg.py update gae_server将源码上传至GAE。
服务器端的配置
将源码上传至服务器之后,用浏览器访问http://you-app-id.appspot.com/fetch.php(将you-app-id更换为应用的ID)
然后登录http://appengine.google.com,在GAE的控制面板上找到Data>>Datastore Viewer
选中WPConfig(如果找不到WPConfig再用浏览器访问一遍http://you-app-id.appspot.com/fetch.php)
打开id=*的项目,设置cryptomode(加密模式)和siteKey(服务器端密码)
加密模式可以从下面选择一个: AES-CBC ARC2-OFB ARC4--32 Blowfish-CFB CAST-CBC DES-OFB * DES3-ECB
客户端的配置(Linux)
进入local目录,修改配置文件proxy.conf
#设置监听地址和端口
LISTEN_ADDR = ('127.0.0.1', 8086)
#设置GAE服务端,可设置多个
GAE_PROXY = [{
'url': '<a href="http://gae-twitter.appspot.com/fetch.php'">http://gae-twitter.appspot.com/fetch.php'</a>, (设置为自己WallProxy应用的地址)
'key': '', (与服务器端的siteKey保持一致)
'proxy': {}, (代理的代理,当WallProxy无法连接时可以试着设置为‘proxy’: {‘http’: ‘www.google.cn:80′})
'crypto': 'XOR—0' (与服务器端的加密模式保持一致)
}]
客户端的使用(Linux)
在local目录中执行命令python proxy.py即可
Ubuntu中若要将WallProxy添加至开机启动项中,只需打开“系统>首选项>启动应用程序”,将上述命令添加进去即可。
注意:Linux上需要移除local目录中的Crypto以及OpenSSL目录,否则会报错ImportError,如果无法运行则需要手动安装这两个模块(一般情况下系统已经自带)
客户端的配置(Windows)
Windows用户可以下载Windows专用的GUI客户端
http://wallproxy.googlecode.com/files/wallproxy-win-local.7z
运行WallProxy.exe,点击设置修改配置文件,修改方法同上。
客户端的运行(Windows)
打开WallProxy.exe后,点击“启动”即可运行代理,如果需要开机后自动运行/运行后自动启动/运行后自动最小化则可以点击设置进行配置。
浏览器的设置
将浏览器的代理地址和端口设置为在WallProxy配置文件里设置的监听地址和端口,默认为127.0.0.1:8086,推荐使用Chrome的插件Proxy Switchy。
试试看,如果打开http://www.google.com不会自动跳转到谷歌(http://www.google.com.hk)的话,说明代理已经生效。
证书的导入
此时虽然已经可以成功使用代理,但是访问HTTPS时仍然会弹出证书无效的提示,而WallProxy则能够轻松搞定证书问题!
首次运行WallProxy之后会在WallProxy的目录下生成一个cert目录,其中含有一个ca.crt文件。
Firefox依次操作:“首选项->高级->加密->查看证书->证书机构->导入->选择ca.crt文件->选中第一项->确定”,即可导入成功。
IE等Windows下浏览器用户双击ca.crt选择导入证书按提示操作即可导入成功。
Linux下的Chrome/Chromium导入证书则稍微复杂一点,以Ubuntu为例,先要安装libnss3-tools
sudo apt-get install libnss3-tools
然后导入证书(假设ca.crt所在路径为~/wallproxy/local/cert/):
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n WallProxy -i '/wallproxy/local/cert/ca.crt'
这样证书就被成功导入了。
再打开HTTPS的网站时不会再弹出证书无效的提示了~~
UPDATE:亲,Wallproxy已经停止开发了,试试Wallproxy-Plugins吧,更简单更强大哦~
Leave a Comment