自己动手,丰衣足食
2010年08月30日 12 篇回應
【2010年10月更新】
GAppProxy 已有 2.0 版直接下载,项目页面有 step-by-step 的使用说明,本文已煋。
======================
操墙的方式有许多种,著名的傻瓜工具××门、×界,速度慢但是稳定的洋葱头,花钱买放心的 VPN ……这两天我在试用 GAppProxy ,发现这实在是个好东西(对于不能访问公网的教育网童鞋而言更是好东西…XD
前提是用它的人肯动手折腾,习惯了在抠抠上要人传傻瓜工具的伸手党可以不用往下看了。
GAppProxy 分本地客户端和服务器端。服务器端运行在 GAE (Google App Engine) 平台上,可以免费自己搭建,自己管理和使用,网络稳定速度快。本地客户端也不大,无需安装,资源占用起码比洋葱头套件要少。
项目页面:http://code.google.com/p/gappproxy/
1. 服务器端(可选)
用 Google 帐号登录 https://appengine.google.com/ ,创建一个新的应用(Create an Application),头一次使用可能需要填手机号接收验证短信。记住创建的应用 id(Application Identifier ,假定它叫 yourfetchserver ),Title 随便填无所谓。
去 GAppProxy 的项目页下载最新的代码。注意不要直接下载 Downloads 页面提供的文件,版本太老,登录有 bug ,也不能看 youtube 。用 svn 工具 checkout 最新的 r102 版,不会的,可以直接右键另存为这右边的 5 个文件,放在同一个文件夹下(假设文件夹叫 fetchserver )。
记事本打开刚刚下载的 index.yaml ,删掉除第一行之外的所有内容。再打开 app.yaml ,把第一行『 application: 』后面的内容改为之前创建的应用 id ,比如:
application: yourfetchserver
下载 Python 2.x 版,和 Google App Engine SDK for Python ,并安装。(蛋疼的 G×W 把 Python下载页干掉了,这个是无地雷的下载链接。)
2010年9月2日补充:
如果要自己编译 GAppProxy 的客户端(详见下文),需要 Python 版本为 2.6.x 以上,否则不能 https 。但是如果用最新的 Python 2.6.6 或者 2.7 ,GAE 支持会有 bug ,导致 GAE 应用本地测试时无法登录,Python 2.6.4 使用正常。
运行 Google App Engine Launcher ,左上角菜单『 File -> Add Existing Application 』,浏览(Browse)找到刚刚的 fetchserver 文件夹确定,底下 Port 改不改无所谓,然后添加(Add)。
选中刚添加的应用,点右上角的 Deploy 按钮,按提示输入 Google 帐号和密码,等待应用上传,直到出现『 (Process exited with code 0). You can close this windows now. 』的提示。
上传成功之后访问 http://yourfetchserver.appspot.com/fetch.py ,
可以看到 GAppProxy 的版本显示是 1.2.0
2. 客户端(必须)
同样也不能下载 Downloads 页面的旧版本,这里(下载需翻墙)有别人编译好的新版本客户端,或者 checkout 最新的代码再用 Python 折腾去。
解压缩( .7z 格式可能需要用 7-zip 解压)以后,运行里面的 gui.exe ,界面如下:

啥都不填就是连接默认服务器(显然会撞墙),勾选『 Use FetchServer 』,填入第一步中自己搭好的服务器,比如『 http://yourfetchserver.appspot.com/fetch.py 』,或者填入其他好人共享给你的服务器,保存(Save),退出(Quit),再重新运行 gui.exe 。
点 Status 查看运行状态,如果提示『 Proxy is running 』就 OK 了。
更多客户端使用说明请查看官方 wiki 文档,但是不要照文档所说下载旧版本的客户端。
3. 设置浏览器代理
将浏览器代理或者 AutoProxy 首选代理设置成 127.0.0.1 ,端口 8000
4. 关于 https 的问题
引用 GAppProxy 项目页的说明
为支持HTTPS,GAppProxy使用了一种妥协的方式,该方式从原理上破坏了HTTPS固有的安全性,将HTTPS的安全级别降到了HTTP级,所以如果你要传输重要数据,请不要使用该HTTPS代理。
GAE平台不支持数字证书验证,所以必然存在证书错误,继续浏览就是。
补充:对 IE 来说是继续浏览,对 firefox 来说可以添加例外,下次就不会收到证书警告了。方法是碰到如下图所示的警告信息时,点击『我已充分了解可能的风险』,再点击『添加例外』,弹出窗口中点击『确认安全例外』。
另外 firefox 访问 facebook 或者通过 echofon 访问 twitter ,还需要手动访问以下网址并添加例外:
- https://api.twitter.com
- https://s-static.ak.facebook.com
解决证书警告问题还可以干脆自己做 CA ,但是需要 OpenSSL ,详见这篇(这位大人还有一个新项目尚处于折腾阶段)。
======================
以上,可以开始体验 DIY 翻墙的成就感了。浏览网页速度很快,看视频或者下载大尺寸文件,由于 GAE 的限制,只能分成 1M 大小的片段来分段缓冲,所以看 youtube 还是有点卡,下载网速会变得时停时走。同样是由于 GAE 的限制,每个免费服务器每天只有 1G 的流量。
还有就是,这个东西的客户端可能和某些防火墙有冲突,自己折腾防火墙设置吧。以及,搭建的 fetchserver 一旦被 G×W 发现,可能会被干掉,所以别太高调。
其他参考:
http://code.google.com/p/gappproxy/w/list
http://nothing4something.spaces.live.com/blog/cns!83A3F002ACAD7213!406.entry
http://code.google.com/intl/zh-CN/appengine/
还有什么问题或者 RP 错误,知之为知之,不知 Google 知。只是要注意搜到的文章的实效性,有些老文章提到的不支持 https 不能看视频不能登录网站等问题, r102 版早已经搞定了。
GAE 平台可以干的事情非常多(部分应用浏览),我就给自己搭了一个博客和一个小型网盘,喜欢 DIY 的朋友都去建应用玩吧。




GappProxy还能塞到系统服务里面去,不用跑桌面端就能用~~
btw 再次推荐easycross,http://code.google.com/p/easycross/,4合1翻墙gae应用包,包含gappproxy~~不过我现在已经不用不到这些东东啦,哇嘎嘎~~//esc飘走……
easycross 里面的4个东西,我只要一个 gappproxy 就够了,所以懒得用它。
话说那里头的 gappproxy 服务器代码是 r102 版么?
P.S. 强烈鄙视人肉翻墙炫耀贴!!!!!!
网页显示『GAppProxy/1.2.0』,大概是同一个版本吧,GappProxy更新挺慢的
你Twitter上的 via对联式悲哀 是怎么弄的?
自己去 https://twitter.com/apps 注册了一个api,然后把 gtap 的 main.py 里头默认的 CONSUMER_KEY 和 CONSUMER_SECRET 换成我注册的这个。
具体可以参考这篇
http://www.luzhaohui.us/2010/07/gtap-04.html
echofon怎么设置?一直提示证书错误。
不好意思没注意看后边的文章。已解决。
反正碰到证书错误,就手动访问那个网址再添加例外。
Dropbox的 https://dl-web.dropbox.com 也得这么来一下。
话说 OpenSSL 麻烦么?我也没碰到几次警告,懒得折腾了。
客户端运行环境有什么要求吗?我在一台xp电脑上(没有python)的,跑不起来啊。。。。
我自己编译还不会..T_T,装了py2exe,pywin32,pyQt,明明是2.6版的python,还是提示我缺少【_scproxy】。
但是下载别人编译好的客户端,跑起来没问题。你的gui.exe跑不起来有log吗?
果然有点复杂,慢慢研究下……
目前为止暂时用门+洋葱头+web代理的方式