GoAgent小结–技术篇和统计篇

2012年3月17日 | 分类: 翻墙相关 | 标签: , ,

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/

  1. iGFW
    2012年3月20日14:37

    上次是过激的话,要是能刺激到你,也算功德一件,呵呵,希望您能理解。

  2. i@qq
    2012年3月20日12:29

    iGFW :

    晕死,我只是说使用盗版的人去高谈阔论什么侵权、协议的话,大都是伪君子,并不是说谈论正版的人都是伪君子,而且我有说大都,并不是100%绝对。

    关于iGFW,昵称随便填写的,根本就没想到冒用,也没想到是您专用ID。

    最后想说我只是回复了一下,麻烦不要把我的人格、道德底线判0分,不至于吧,如果看着不顺眼,麻烦把我的那个协议回复删除掉,谢谢,我多嘴了。搞的人格都没了。唉

  3. 2012年3月19日11:45

    末尾提到的ezproxy,去v2ex围观了一下,想了一下,其实大家是看拿免费的东西赚钱感到不安,难听些叫嫉妒。其实虽然资源不是他的,但是人家是付出时间了。再说如果没有人需要,怎么会有人买?有句话叫做存在就是合理的,反过来想,你去看看那些评价,很多是从vpn和ssh转过来的,没有这哥们的推广,很多人要花费几倍或者数倍的钱用于FQ,其实都那些人而言,是有益的。

    再就是既然是拿来赚钱的,当然要进行一些包装,还有看到v2ex上说的什么tos,说这个就来气,很同意那哥们的说法,大至国家政策、小至公司规章制度,TMD的 tos 哪个不是拿来保障自己本身利益的。不多说了,愿君珍重。

    最后很鄙视那些看人家赚钱眼红的家伙们,再说人家也没算赚钱吧,大家都生活在苦逼的世界,得过且过吧,别tmd的鸡蛋里挑骨头。

    只所以说这么多,是因为遇到了一个大的tos(不多说,避免跨省),如果哪里有冒犯的地方,多原谅。

    • iGFW
      2012年3月19日12:17

      呵呵,文章是转载的。
      这个貌似是GoAgent作者写的,ezproxy使用GoAgent进行商业行为,原作者有权评述。
      据说ezproxy使用开源Wallproxy-plugins而违背相关开源协议,Wallproxy-plugins作者很气愤后果很严重(貌似是关闭了源代码)。
      的确国内有不少人拿国外免费开源的软件赚钱,只要不违反相关开源协议也无可厚非,不过如果违反了相关开源协议侵犯了原作者的权益或者欺瞒用户,对此进行批评也是应该的。

      • 2012年3月19日13:04

        iGFW :

        介个 ezproxy 只是销售Google的appid吧,没说软件是自己开发的,也没有卖软件吧,只是把开源的软件下载链接换个地方下载而已,goagent被转载下载的也很多吧。比如我说帮你上传几个appid,帮你FQ,然后传你一个软件,而且提供技术帮助你如何使用,远程协助等等。但只是没有把软件具体是谁开发的告诉你,收些费用,也是合情合理的吧。

        • iGFW
          2012年3月19日13:11

          开源软件都是在相关开源协议下发布的,任何人使用和修改都是要在相关开源协议下才能进行的。
          比如有的协议允许用户任意修改和分发不过要求保留原作者及协议文本,如果你把协议文本删除然后打包发给他人使用就违反协议了。
          开源协议有好几个,规则也各不相同,比如goagent使用GNU GPL v2协议发布,wallproxy-plugins使用GNU GPL v3协议发布。
          貌似Wallproxy-plugins作者确实曾因ezproxy而关闭源码下载的
          (好像是因为ezproxy修改了Wallproxy-plugins软件而修改后发布的软件使用的协议与原Wallproxy-plugins使用的协议不兼容)。
          由于国人版权意识缺失,一些侵权问题司空见惯,尤其是软件版权更是为不少人所不解。

          • i@qq
            2012年3月20日03:22

            讲协议的话,用微软正版系统的有几个?所以国内根本无需谈论协议,谈论的大都伪君子罢了。谁敢说谁没有使用过一款破解软件?

          • iGFW
            2012年3月20日08:08

            一个人如果没有了基本的是非曲直,没有了基本的道德底线,翻再多的墙也是徒劳。
            可能你因为各种原因在使用盗版,使用盗版你内心应该是负罪感而不应该是自豪感;
            如果你把说正版的人都说成伪君子,如此的是非不分,颠倒黑白,你还有基本的做人底线吗。
            你冒用本博主用户名留言(已被我修改)不正反映了你现实生活中扭曲的人性吗。

  4. 张生
    2012年3月18日10:15

    个人觉得除了SSH之外最好翻墙工具,看 youtube 速度快,美中不足是无法看动态网里的文章。

  5. 天生多疑
    2012年3月17日21:39

    可以毫不夸张的说,今年,方校长和它的团队,工作重点就是拿下goagent!

  6. 人老心不老
    2012年3月17日20:59

    我已经快奔四的人了,一直用此代理,确实不错,开发者牛人耶!!

  7. titus
    2012年3月17日18:16

    确实是翻墙利器,很好