西厢计划 MacOSX 移植版
最近关注了一个西厢计划 MacOSX 的移植项目 kernet (link: https://github.com/ccp0101/kernet)。技术上,kernet 项目做得比原始的西厢计划还要多,可用性也有很大的提高。
最近我做了一个稳定版,主要是增强了稳定性,并支持更多站点。因为个人博客上相关主题较多,所以在这里发布下。如果又更新,我会最先在我的twitter(link: https://twitter.com/#!/liruqi) 上说。
下载页面:https://github.com/liruqi/kernet/downloads
系统要求:Lion 64位。低版本没测试过。32位的系统应该跑不了,不过自己拿xcode 用源代码(link: https://github.com/liruqi/kernet/tree/stable) 编译打包也不难。
跟上一个发布的不靠谱版本(link: http://www.v2ex.com/t/18488) 相比,
1。回归到 master 可用版本做的修改
2。支持更多站点。手动增加的站点是 *.wordpress.com。这里有一个通过跑脚本,增加的站点列表:https://github.com/liruqi/kernet/blob/stable/Scripts/reset.txt
还是说明下,我不能保障你正确安装之后就一定能访问列表中所有站点。参考这篇 总结(link: http://gfwrev.blogspot.com/2010/03/gfw.html)
PS1: 最近做 kernet 打包的同时,对 GFW 做了些有意思的统计。(统计基于 gfwlist.txt,结果不完整不精确,但是正确率应该是大于 50%的;大家也可以看我 stable 分支脚本自己做测试)
a)已解放的http://t.cn/ShP1ya
b)关闭服务器或者被IP封锁的 http://t.cn/ShP1yC
c)至今被reset的 http://t.cn/ShP1yj
d)莫名其妙出问题的 https://raw.github.com/liruqi/kernet/stable/Scripts/wtf.txt
PS2: 算是一个坏消息吧。最近域名封锁、ip 封锁逐步开始了。网络白名单制度大概已经步入实施阶段了。
a)域名封锁是指不再搞dns缓存污染,dns缓存污染是dns-query 被gfw抢答了,还能获得正确返回的;而域名封锁,是直接丢包(目前这种现象并不是每个网络运营商都会有)。这种封锁可能是最近才有的。
b)ip 封锁比较明显的是 tumblr。
West chamber season 3 – a new way to bypass Great Firewall
(I don’t quite believe wordpress.com, I edit this post in google docs, and it is open for anyone to edit. I am not used to write in English, if you find mistakes please correct it for me in google docs. I may update here periodly based on the google docs one.)
The Great Firewall of China
Normally, we illustrate the Great Firewall(GFW) with the Great Wall of China:
But technically, GFW does not simply work like a wall. The commonly-used technical methods are IP blocking, DNS cache poisoning, connection reset, (ref wikipedia Great Firewall of China). And connection reset is now the most import part that works.
Technical details of connection reset
Why choose connection reset? For web sites, IP may change, and normally domain do not, it’s a big overhead to maintain an IP list of domains; and DNS cache poisoning can be bypassed by changing a hosts file for local name resolution. Connection reset is, somehow an elegant way to block the unwelcome sites (of course, unwelcomed by Chinese goverment).
When GFW detect sensitive words from site url or site content, it will send reset packet to both client and web server, thus, both client & web server give up the connection, and “Error 101 (net::ERR_CONNECTION_RESET): The connection was reset.” come to your chrome browser. This works like cheating, not blocking.
The scholarzhang project
There is nearly no way to bypass GFW without proxy servers (strictly speaking, bypass var p2p network, is also implemented by proxy, the different is that any node in p2p network may be the server, server is not fixed). Servers cost money, and there must be someone to pay for it.
Scholarzhang is a great attempt to build tool to bypass directly without intermedia server. It’s trying to save connection before reset package is sent by GFW. The theory is sophisticated, and it meet many restrictions(ref README, I wish some one could translate it to English). Now, the tools provide by scholarzhang hardly work anymore.
West chamber season 3
This project is mainly inspired by and inherited from scholarzhang. The theory is simple: drop the cheating packages send by GFW on both sides – server and client. Currently I have got a working prototype. If you are in China mainland, you should not be able to visit liruqi.me directly. But if install client by this install guide, then you should be.
But I need help:
- Spread and promote this project. It need client and web server cooperate, without either side, this will not work. Especially If you can directly contact the webmaster or system administrator of a blocked site, persuade him/her to do this! This will bring them lots of Chinese users.
- Find more specific rules of GFW. Currently, On the server, I simply drop reset packet from China; On the client, I simply drop reset packet from China. I wonder how risky of doing this. I wish to reduce the negative impact to minimum.
- More test & improvement on Windows client.
Beside, anyone interested in this project, mail me! Tell me what you can do, documentation, translation, web site building & development are welcomed. I cannot finish them all by myself anyway 🙂 . Also, contact me if there is any chance for me to go abroad, to work or study on anti-GFW, for this is my interest. I also love to “make the world a more open place”, but in a different way from Mark Zuckerberg, you know.
西厢计划第三季 – Ignore the Great Firewall
本文google docs 链接:https://docs.google.com/document/d/1-PurF8_pJoLVJ7IqMfy5pdATjzR1_B5gqSlc2B5VPcY/edit?hl=en_US
本文最后更新时间:2011年7月27日
This post is inspired by http://obmem.info/?p=615
By ‘ignore’ instead of ‘bypass’, we mean working without intermedia server.scholarzhang is a great attempt, but currently it hardly work. scholarzhang contain three parts: zhang(client-side connection obfuscation), cui(server-side connection obfuscation), gfw(drop gfw dns hijacking packets) (ref 项目计划). On the client, we need to run zhang & gfw. The difficult part is that, GFW send RST packages to both ends, client & server, and Mr. zhang is trying to save reuse the connection after server received RST package(ref), 我估计 CUI 也是在尝试做类似的事情. The limitations are summarized in 项目计划:
“首先作为开发者,对于这个项目,应该消除幻觉,着眼缺点。西厢的弱点在README.wiki的局限一节已经描述得比较清楚,主要是两种问题:不稳定和易变。不稳定可能造成在使用过程中可能出现连接失败的情况,易变可能造成GFW升级之后如果西厢不升级便无法使用。不稳定是由于张某和崔某实际上做的是通过协议hacking弥补GFW造成的破坏,要求一种RFC规定的理想状况,原理就是不稳定的;而西厢的原理部分所依赖的GFW指纹和漏洞机制是易变的,需要即时更新。因此,“没有银弹”,西厢也不是对GFW的银弹,我看到自由亚洲的报道夸大其事,我想开发者关注的应该是bug才对。 “
However, if Miss Cui make a move to help Zhang in, and this will make the task much easier. In fact, Ignoring the Great Firewall of China and 西厢计划原理小解 both mention a way to ignore GFW: just ignore and drop the RST packges sent by GFW.
“大家都知道,连接被重置的本质,是因为收到了破坏连接的一个 TCP Reset 包。以前剑桥大学有人实验过,客户端和服务器都忽略 Reset, 则通信可以不受影响。但是这个方法其实只有理论价值,因为绝大多数服务器都不可能忽略 Reset 的 (比如 Linux, 需要 root 权限配置iptables, 而且这本身也把正常的 Reset 给忽略了)。”
正常的 tcp 连接的创建和结束过程中,都不需要用到 Reset。客户端直接drop 掉 Reset,一般不会有问题,至少是可以正常上网的;服务器上如果直接这么做,可能会产生一定的资源消耗。但是这种方式显然比最初始的西厢计划更有效。
具体操作方法
在客户端和服务器上分别用 root 执行:
iptables -A INPUT -p tcp -m tcp –tcp-flags RST RST -j DROP
如果用的是 FreeBSD的 ipfw,命令换用:
ipfw add 1000 drop tcp from any to me tcpflags rst in
如果客户端用的windows,拿西厢项目中的 windows 客户端试试。
另外,客户端还可以丢弃掉gfw 发送的扰乱的 ack+rst 包,具体参考最后更新的说明:
iptables -A INPUT -p tcp -m tcp –tcp-flags RST,ACK RST,ACK -j DROP
局限
1. 无法应对 IP 封锁。如果 ping IP 都超时,基本无法离开中间服务器绕墙。
2. 在多次触碰敏感词之后,GFW 会直接阻断两端通信,从而导致后续的数据无法传输。
可能的问题
1) 如何让服务器识别 GFW 发送的 Reset 包,而正常处理其它 Reset。很有可能的情况是,西厢 CUI 模块已经解决了这个问题,甚至服务器上直接安装 CUI 即可达到预期效果。
2) Windows 客户端的开发。linux 环境上安装 zhang 和 gfw 是相对容易的,西厢目前也有windows 客户端,但我不清楚目前可用性如何。(如果用方便翻墙作为理由推广linux 倒也不错)
3) 也是最麻烦的问题:这个方法如何推广。如果是个人的vps 上的博客域名被污染,只需要打一条命令就可以搞定;但是如何说服 facebook 在他们服务器上安装这些东西呢?这需要对 CUI 模块做认真的后续开发、测试,以及文档完善。这些准备工作做好了,如果国外的互联网公司认为中国用户足够重要,也自然会考虑这些事情。当然,客户端的推广同样重要。本文最开始打算用英文写,也是希望国外互联网公司能方便地找到这里。
匿名性
原始的西厢计划小组成员基本是匿名参与。此次我基本上实名了。如有感兴趣的同学欢迎加入。如果遇到政府的压力,我会考虑移民出国。另外,如果本方案有国外网站使用,我也会发布一个项目捐赠方式。
测试结果(7月24日更新)
本文发布当天我没有做测试。今天才找到一朋友的vps 做测试。GFW 有一个惩罚机制,大概是你连上国外服务器的,被发现触碰关键词(访问一个被污染的域名,或者交互数据中有明文的敏感词),发送 RST 之后,会在一段时间内(目前感觉大概是30秒),可能会封禁两端的通信,效果如同 ip被封禁。但是,这种惩罚机制的触发条件不太稳定。我在 Ubuntu 11.04 上的测试结果是:
- curl 100% 触发惩罚规则 – User-Agent: curl/7.21.3 (i686-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18\r\n
- chrome 和 firefox 在连续地发送大约6次http 请求撞墙之后,gfw 似乎会随机阻断若干请求,但是没触发封禁通信的处罚。
总体上来说,目前结果比较乐观。
另外,我测试的域名是 liruqi.me,这个域名已指向一个会丢弃 RST 包的主机上,供大家测试。
Happy birthday to me
火了,刚才一点保存,什么都没了,只有一个开头,大概是1小时前的备份。以后不用 wordpress 编辑器。如果写博客,我会在 google docs 上编辑,在这里发链接。近况。
Almost everything is lost after I publish this post。I did not back a backup, and using “back” button of my chromium, I cannot get my post back neither. I will not use wordpress editor from now on. If any more post, I will edit in google docs and paste the link there. Fuck wordpress.com!
另外,提前说一下如何访问google docs(不保证时效性)。
1. 在 weibo.com 上注册新浪微博帐号(如果已经注册过请忽略)
2. 在 weibo.com 上关注 http://weibo.com/twocoldrss (如果已经关注过请忽略)
3. 点击这个微博中的文章链接: http://weibo.com/1670658877/xeV0MlfT0
4. 根据文章提示,修改你电脑中的某个文件。
5. 如果你在新浪微博上不小心关注了这个二逼, http://weibo.com/guojingming ,取消关注加入黑名单并举报不良信息。
6. 根据这个文章(https://plus.google.com/109067138922126306483/posts/g6FSWhL1YRC),继续修改你电脑中某个文件。
7. 前面步骤可以省略,点这个链接照做即可:http://www.cooerson.com/?p=270
然后,你的电脑就上google docs 就飞快了!
如何创造财富
今天在家看完了英文原版 Hackers and Painters (在线地址) 的第六章 How to Make Wealth。这本书我目前只看了第一章和第六章。因为书中一开始就说,各个章节内容相对独立,可以根据个人兴趣选择性阅读。于是我前段时间看完了第一章,然后直接跳到第六章看了。里面讲的财富和创业的概念,我觉得很不错,于是我对每一小节做了一个总结;总结的内容不全是书中原话,包含了我个人理解。当然,要真正理解这些概念,还是需要阅读原著以及其引用的相关资料。
1. 一个命题
创业是一个通过投入、专一的工作,在较短时间内给外界创造价值的过程。
2. 运气的成分
成功的创业包含运气成分;在一个尊重个体价值的社会,创业是致富的最简单直接的方式。
3. 金钱不等于财富
财富并不等同于金钱;财富包括我们对所需要的一切,如食物、住房、生活用品;金钱只是财富交换的媒介;做生意的目的是为了创造财富,“做出人们真正需要的东西”。
4. 大饼谬论
财富不像金钱那样相对守恒;我们为自己或者他人的创造或者工作,都是在创造财富,只是个人的创造不一定能交换出客观的货币数值。
5. 手工艺人
软件公司制作软件,如同传统的手工艺人创造工艺品,都是在创造财富。但是好坏程序员的生产力的差异,比手工艺人要大得多。
6. 工作是什么
工作成了一个社会人的身份标志之一。大多数公司的盈利手段是创造财富;那么工作则是在公司中与同事配合,共同创造财富。
7. 更努力地工作
销售人员的效益很容易根据业绩量化;但大公司,开发人员需要相互配合,很难衡量每一名开发人员的实际贡献的价值,所以开发人员的收入会被平均化;优秀的 hacker 在大公司的价值难以体现。
8. 工作的可量化性和重要性 (阮一峰翻译的小标题是”可测量性和可放大性”,我认为翻译成“重要性”更好理解)
要致富,你需要在工作中达到这样的位置:工作效益可以量化;工作内容是产品或者业务的核心部分。公司CEO、明星、运动员都可以达到这个条件。
9. 小团队的工作可以量化 (小标题有改动)
小团队的工作可以量化,优秀的人构成的小团队能产生更大的价值,也可以获取相应的回报。
10. 技术决定工作的重要性 (小标题有改动)
创业公司的产品需要有一定的技术门槛;这样才能有效抵抗大公司的抄袭;申请专利则是一种相对被动的抵抗方式。
11. 潜规则
在大公司工作,付出与回报很难对等。但是在创业公司,可能会大起大落,也有风险。创业公司需要灵活决策,谨慎避免各种问题,公司该卖掉套现的时候也不要犹豫。
12. 用户数量
用户是公司最重要的资本,也是你的对手和潜在的收购买家最看重的因素。公司的开发路线需要根据用户的需求和反馈灵活变化。丢失用户是对创业公司最大的打击。
13. 财富和权力
创造财富从来就不是致富的唯一方法;封建时期个体很难保护自己的财富积累;因此也抑制了技术革新。社会保证了个人财产不被强制侵占,才能促使人们用合法的、创造的方式去积累财富;同时,这种商用的技术发展,也能用于加强国家的军事力量。
—
我说些题外话。
1. 书中第六章提到一件事情,说是IBM 跟微软签署的DOS系统授权协议,犯了一个极大的商业错误。处于好奇心,我尝试去了解 DOS 时代的那段历史,然后一学弟推荐了一部电影,硅谷传奇 Pirates of Silicon Valley 。晚上在线看完了。其戏剧性不亚于最近的社交网络。社交网络基本上只是讲Facebook 公司的成长过程,以及那些不上进的对手;而硅谷传奇则讲述了PC 时代Apple 跟微软、IBM的创造和发展史;电影的表现手法也极其夸张。看完了电影,我才能理解国外的著名hacker 们 对苹果的狂热崇拜。那个时代的荣耀属于创造了苹果机的乔布斯,而盖茨不过是一个聪明而成功的投机商人。
2. 我觉得中国还不太适合创业。我以前接受的是马克思政治经济学,暂时也没有去了解西方国家对中国的政治、经济状态的定义。我的理解是,虽未的社会注意初级阶段,实际上是对中国处于的半封建半资本主义状态的修饰。最近几年频发经济犯罪,非法集资之类的名义,出事基本判死刑,可以说是对经济活动和个人财产赤裸裸的打劫;另外高税收也在剥削企业所创造的价值。本质上,这跟封建领主的剥削行为没多大差别。另外,创业公司还需要很谨慎地对待用户产生的内容。制度的和平演变是个循序渐进的过程,或许还有很长的路要走吧。
记录一下 5 月 28日 的 Google HTML5训练营
我的生活
博客中很少提到自己的生活。因为自己的生活,对于外人而言,毫无意义。
09年02月来北京,09年年底在网上认识了一个大我一岁的zw。那时候在新浪上班,下班之后她都会来找我。那个时候我还什么都不懂。冬天的夜晚,跟她牵着手总会触电。去年为赚钱跳槽创业,后来又跟老板不合,今年年初草草离开。中间跟zw吵过几次,分分合合。今年工作稳定后,我开始找别人,到目前一个都没捞着。zw估计是彻底对我失望。虽然住得近,但是大半年了没见几次面。仅有的两次见面都是不欢而散。我不知道她在想什么。我不知道为什么上午打电话还好好的下午就不耐烦不见面让我滚蛋。我讨厌这种善变而暴躁的人,比我还不靠谱。我通讯录中已经删了zw,我恨自己为什么周末闲着没事还找朋友要她的电话。
周末。
几乎每个周末都会去公司,陪电脑玩。在北京的师兄可能是因为有了女朋友,没有以前那么积极组织集体活动了。前段时间下班后还在公司打dota。我dota玩得不好,vs上打经常被人骂,慢慢的就不在外网打了。家里不能上网,我不知道自己会租多久,也懒得自己弄网。不过前几天运气好进了一个没加密的无线路由器的网页控制台,然后把自己电脑和手机的mac地址加到了白名单,于是……下班后可以直接回家了。
现在性压抑得厉害,晚上都能做很奇怪的梦,早晨醒来赖床不想起。有件很神奇的事情是09年来北京之后,某次自己洗澡才发现手淫可以让自己射精,在这之前我以为用手抚摸就算手淫了。而在手淫之前我有过成功做爱的。想想那一次成功折腾好久,多么来之不易。现在可以控制自己手淫。手淫不会有做爱时拥抱抚摸的愉悦,而且我怀疑手淫会更快地让自己变老。两个月前我还用过避孕套手淫,好浪费 🙂
ps:北京有靠谱的性交易场所或者性工作者么?
理想。
当时以为自己离职创业是为了理想,其实自己算计的还是钱。慢慢的发现,为了别人的理想被跟抽着鞭子跑,并不是我喜欢的生活和工作。那时候一般很晚下班,自己做开发还得盯着服务器监控,出问题了给机房打电话。之前没有运维经验,服务器死机都不知道从何入手。后来仔细想想我还是不想什么都管,我不擅长同时跟踪处理多个问题。 现在工作内容倒是没有问题了,只是自己还没找到技术上前进的目标。
还是有些想出国,万一明年真的上外网搞白名单了呢。
政治。(政治看起来跟生活无关。我写这个,主要是不希望日志导入到人人)
前几天看了下一个在清华教书的老外写的几个太子党的简历(http://chovanec.wordpress.com/2011/05/08/primer-on-chinas-leadership-transition/),关于明年换届的候选人。我个人支持习近平。简历上看不出谁上台之后,众屁民能活的更自在些。只是发现习近平他爸人还不错,希望他多少能有些耳濡目染。下个月四号放假,天安门会不会有些好戏?记得09年的64,艾神在天安门的行为艺术,太霸气了。
update at 22 May, 2011
昨天晚上十点多去在附近逛了逛, 进去了, 体验很糟糕. 我就说一下吧. 找妓女找年轻的, 至少一般不会欺诈消费者. 这毕竟是交易。从一般的法律意义上来讲(天朝的就算了),卖淫的行为合法,而欺诈是非法的。带欺诈行为的交易, 我不会做第二次。
说下过程。
1. 进去一家店里问价格。还是按摩50 推油50 口活100。然后我问做爱多少钱,她说100。我问是脱裤子做吗,他说是啊,不脱怎么做。然后我说ok。她让我先给钱,行,我给了。然后上床,上去之后发现,妈的,床上里边还睡着一个baby。
2. 结果我上去之后,套上TT,只给BJ,她不上来。我问她为什么不上。她说JJ没硬起来怎么做。后来硬了她还是不上。我问为什么。她说脱裤子做另外收钱。我问多少,她说300。我认栽了,一看兜里只有260。我说身上就这么多,260行不行。她说不行,我说我去取钱吧。然后提裤子走了。
3. 我还真去取钱了。完了之后就在纠结要不要去。因为之前的过程让我对她的品行很怀疑。纠结半天还是去了。我有了戒心,说给100完事之后再给100行不行。她说不行。那我200全给她了。然后。。她横躺床上,这种姿势令我很不舒服。因为我没有这样做过。我让她平躺床上,她就像听不懂一样。我也懒得继续说,只想快点完事。这姿势弄得我很累,而且没法高潮。
4. 完了之后,她居然说BJ 和做爱分开算,我还得给她一百。这次我生气了,跟她顶了两句。她仍然不依不挠。我想跟这种人没什么好说的,直接开门走人,她居然威胁我说打电话叫人。。。我摔门走了。
什么世道。即使是为生活所困,也不应该用欺骗和威胁的方式赚钱。昨天中午跟同学一块吃饭,说中国没救。因为许多中国人的素质和观念的确有问题。他们痛恨统治者,是因为他们恨自己没有处在那个位置;如果换位,他们也会做出同样的事情来。即使社会底层的人也会使用暴力来威胁。中国上一辈人都擅长欺骗、暴力,不会去讲道理,这种做事的方式不知道会传承多久。去死吧,这个万恶的社会。
Ubuntu 上安装 ibus云拼音输入法
ibus云拼音 是一个可以利用在线词库的ibus 输入法。目前 Ubuntu 11.04 默认的输入法框架就是ibus。安装方法参考wiki,不过需要仔细看评论。我说一下目前我已知的 Ubuntu 上最简单的安装方法。
sudo apt-get install liblua5.1-0-dev liblua5.1-socket2 libsqlite3-dev libibus-dev libnotify-dev lua5.1 libgee-dev sqlite3 valac-0.10 sudo update-alternatives --config valac svn checkout http://ibus-cloud-pinyin.googlecode.com/svn/trunk/ ibus-cloud-pinyin-read-only cd ibus-cloud-pinyin-read-only make sudo make install 然后登出,重新登录,在ibus配置中应该能找到了。
说明一下,这个项目去年年底作者就没更新了,wiki 里面说的方法,现在有点问题。Ubuntu 的软件源上的valac 版本到了 0.12, 而ibus云拼音并不支持valac-0.11 以及以上版本,valac也没有保证向下兼容,所以apt 安装 valac 需要指定 0.10版本。我尝试过修改ibus-cloud-pinyin 项目代码,使其支持 valac-0.12,目前基本可用,但是不稳定,曾让我桌面两次崩溃并退出到登录界面。还有个问题,是valac依赖于 libnotify 0.7,ubuntu 上目前只有 libnotify 0.5,所以有些统计信息的展示我暂时去掉了(这个问题我还给ubuntu报了一个bug)。我修改的代码放在git 上了,有兴趣的同学可以帮忙改进一下。
Dabr for weibo
Last update: 2012/10/1
最近又更新了不少,另外我决定停止开放源代码。我直接在原文中删改。
—
Dabr for weibo 是一个新浪微博类似Dabr 的Mobile web第三方。做这个第三方应用的主要目的是尽量 减少新浪微博的信息重复和信息干扰。
Dabr for weibo 最开始是 @timyang 改的,我在他的基础上做了些完善。目前github 上代码已经停止更新。
最近做了一次更新,v2ex 上有些更新说明。
在这里我说一下使用这个第三方的理由吧。
1. 界面元素简单,加载速度快(审核通过后才能用上)。
上面提供的两个地址,服务器都是新浪云计算平台,说不定都在一个机房,网络延迟很小。dabr 本来就是为手机浏览器设计,加载的数据不多。绝不会出现新浪微博首页,加载N久,chrome 还在转圈圈。
2. 信息聚合
有些消息,比如时事新闻,很多情况是,你的 follower 中有多人 retweet 这个消息,于是重复的信息你会看n 遍。这大概是 twitter 主站仅支持保持全文 + 作者的官方 retweet 原因之一。于是一个消息,多人 retweet,你只需要看一次,然后看 retweet 次数得知消息的热度。我本人是对信息重复很反感,所以在 dabr-for-weibo 中加入了根据转发原文聚合。转发理由,仅完整显示最新转发人发的,不过也会有一个转发的关注人列表。
说下现有的问题。
1. 硬伤是新浪微薄 api v2 做了很多限制,暂时无法调用搜索、私信接口。
2. 因为审核相关的问题,不能改应用名称,以及来源地址。
3. 英文界面,无汉化版。这是上一次审核不通过的理由。
4. 暂时没做消息提示,认证用户标记等。
另外,新浪的SAE 在 dawbr.sinaapp.com 的登录时容易报内存不足。好像是因为代码中我用了 debug_backtrace() 函数,导致内存不足。后来我做了些调整。SAE 给php-cgi 进程的内存是不是少了点啊。。
Android平台翻墙方案总结
跟国家防火墙干上了有两年了,弄得本人都有点人格分裂。因为我长期不用Windows,PC上的方案我就不说了;Android平台我相对熟悉,所以简单总结一下。其实理论上都差不多,只是Windows 系统上,有一些商业公司提供的闭源翻墙工具。
1. 支持所有网络的 web proxy。一个典型的工具是 google 的移动设备的适配服务:http://gxc.google.com.hk/gwt/x?u=http%3A%2F%2Fdeveloper.android.com。类似的翻墙方式google translate的网页翻译也能实现。另外就是别的web proxy, 以前有发过总结这种项目/工具的总结 web-proxy 评测报告 。这种方式有局限,你不能触碰关键词(特别是 URL 中,这种代理一般是http的)。如果有支持 https 的web proxy 服务,就比较理想了。
2. 仅支持移动网络(如GSM, WCDMA)的 HTTP Proxy。这一般需要你在国内有一个主机,然面运行个如squid 的HTTP代理程序(我之前是在服务器上用 gappproxy 做的公共HTTP 代理,不过现在GAE已经连不上了);手机上的移动网络接入点设置中,填写HTTP代理ip以及端口。这种方式可以让自带的 chrome lite 浏览器走代理。其它的浏览器和应用程序不一定会使用这个代理。(Andorid 系统似乎可以在数据库中为每一个应用程序设置代理,但是能够保证应用程序一定使用这个代理吗?我估计不能。)
3. socks代理方案。典型的工具如是 TransProxy ,是一个简单设置全局代理的工具,可以配合connetbot 端口转发功能,做系统全局的透明代理。对于大陆用户,TransProxy 的缺陷在于不能处理dns劫持。目前我比较看好的一个项目是 sshtunnel,功能很强大,可以处理dns劫持。sshtunnel的配置有点复杂。有两种代理工作模式:a) 本地socks 代理,如果只有一个ssh帐号,需要开启这个方式;b) 远程socks代理,需要在服务器上开squid代理,这样做的优点在项目issue 里有说明:http://code.google.com/p/sshtunnel/issues/detail?id=8&can=1。 ,不过文档不够清晰,还需完善。这种方案的原理可以看我上一篇日志中有说明,它的的好处是,可以保证应用程序使用你的代理;可问题在于,这个方案需要root权限用 iptable 做端口转发,对于普通用户门槛较高。
4. 国外VPN。目前而言,买个VPN自己用是最省心的翻墙方案,Android系统上可以直接配置。推荐下 @xiaodin 的店铺(非广告,纯友情链接)。