翻墙 | GoAgent小结�技术篇和统计篇
来源: http://igfw.net/archives/8374 GoAgent小结�技术篇 2011/12/8 Update 具体实现细节,请访问goagent-dev之 goagent做了哪些改进? GoAgent 一直号称简单快速,不是没有道理的。proxy.py不到800行的代码实现了:跨平台运行、多appid负载均衡、RangeFetch、支持NTLM、支持内网代理、支持ipv6、支持php fetch等诸多feature,其考虑到的一个重要原则是依赖尽可能小,这体现在了: 0.代码即程序,Windows下绿色运行,连GAE的sdk都不用装,这得益于先进的打包技术。 1.实现基本上都是标准库,openssl库也很常见,移植容易。 2.fetch.php对服务器端的要求较低。需要preg/zlib/curl模块支持,前两个属于标准模块,curl也是常见模块。 3.合理的默认值,只需要配置appid就可以用了。 4.不支持gfwlist GoAgent 另一个原则就是追求速度,不断在优化,看看 ChangeLog 就知道了: 0.压缩传输,不支持强加密,因为连GMail都被天朝黑客入侵过,保证local到AppEngine的绝对完全并没有太多的意义。。 1.再如之前整合了gevent或者线程池,为了速度后来又拿掉了; 2.为了加快启动速度,将读取proxy.ini 放入了全局变量中,代码因此丑陋了; 3.修正了socket关闭速度慢的问题; 4.多次重新打包python解释器(proxy.exe); 5.简单到极致的GUI,在启动时完成大部分初始化设置并减少if的使用; 6.为了优化php fetch的规则匹配,干脆将其和GAE的监听端口分开; GoAgent的优势在于在客户端做了大量工作,由本身维护session的状态, 因为GoAgent 既是Client又是Server,本地相当于一个http server(采用了BaseHTTPServer),同时又是Client端,与部署在AppEngine的fetch.py进行通信。所以当我得知有些代理软件使用mysql来维护代理服务器的session状态时,觉得有点惊讶,明显不合理了嘛。另外基于GAE的代理最快的就是直连北京google了,因为Google的很多服务都是云服务,所以一个IP能够提供多种服务,其中就包括AppEngine,因此访问google自家的服务速度很快,而GoAgent 从一开始就是这么做的。 关于Porting的问题,比如支持iOS,我认为移植平台本身更为容易,所以才有很多人打Android应用的主意,比如最开始的Alien Dalvik,号称让MeeGo支持Andorid 25W应用的 ACL for MeeGo ,裁剪VirtualBox的 BlueStack ,一直不温不火的 Mobile Virtualization ,尽管这些目前看来还不太实用,比如BlueStack,我就挺好奇它如何解决ABI不同的问题,但是都是移植平台的例子~ 咳,有点扯远了,所以支持iOS最关键的无非就是:1.交叉编译python2.6 for iOS 2.编译pyOpenSSL for iOS。其他的都是如何让设置变得简单,操作简便而已。顺带提一句,pyOpenSSL和SBSetting GoAgent toggle都是在我的ipod上编译的,越狱开发其实门槛也不高,只要搞定了toolchain就ok。 最后再八卦几句,GoAgent 最开始是托管在github上(其实现在也是),后来为了不”牵连”github,迁移到了Google Code上,在首页上用了一个空的 bit.ly 链接指向了真实的地址,原因也是如此;GoAgent 的名字是因为不想再用已经泛滥的proxy。。 原文 : http://kernelpanic.im/blog/2011/10/08/goagent-summaries-technical/ ======== GoAgent小结�统计篇 GoAgent 发布快半年了,打算写两篇小结一下, 另一篇 会讲技术相关的内容~ 如果没有最开始的随意 发布 ,GoAgent 或许还只是个内部使用的小玩意,这是当时的新闻: 而现在,GoAgent 在Google Code上star数超过了850,issue数超过了1000, 这实在是有点意外,不信可以看看上千的都是什么project,CyanogenMod也不过860而已: 在Google Trends搜索流行度已经超过了老前辈gappproxy。 和最流行的目田门相比,差距也有变小的趋势。 根据Google Analytics 最近三个月的统计,GoAgent 首页PV有23W,独立访问才3.8W,可以推测除了作者之外,有人也每天刷GoAgent的首页。。中间的peak貌似是宣布支持iOS的时候,九月底的另一个peak貌似是支持php的延后效应。 GoAgent 的下载数和用户数很难估计,因为github并没有下载的统计,很多人更新GoAgent也是git remote update这种方式,而且下载了并不代表就会使用。几万用户估计应该有,分布在”全球”。。 很显然,Windows和Chrome用户是主流。 GoAgent iOS好一点,提供了Google Code和cydia源的下载,结合Google code和这个简单的 脚本 进行统计,GoAgent iOS大概下载了1500次,而python2.6下载2200次左右,用户数应该不到1千。。 GoAgent 的搜索流行度得到了Google Analytics数据的支持,一半以上流量都是通过搜索而来,说明在首页放置下载链接和Google +1是相当正确的。 顺带提下,还有个ezproxy的事情,具体可以看v2ex的 帖子 和这个 链接 ,我根据淘宝显示的最近成交记录估算了一下,那个哥们利用GoAgent赚了大概1000块,不过这也从侧面证明了GoAgent的速度和可用性,都可以拿来卖钱了~ 原文 : http://kernelpanic.im/blog/2011/10/06/goagent-summary-statistics/ 翻越防火长城,你可以到达世界上的每一个角落。(Across the Great Firewall, you can reach every corner in the world.)翻墙利器赛风3下载地址: http://dld.bz/caonima326 , http://dld.bz/caonima745
阅读更多