GoAgent
GoAgent是使用跨平台语言Python开发、基于GPL自由软件协议的代理软件。它利用Google App Engine(GAE)的服务器充当代理。该软件在中国大陆被广泛用于突破大陆官方建立的防火长城(GFW),以浏览被封锁的内容。
开发者 | phus.lu, HewigOvens |
---|---|
最终版本 |
|
源代码库 | |
操作系统 | 跨平台(基于Python) |
类型 | 代理服务器 |
许可协议 | GNU GPL v2 |
网站 | goagent |
GoAgent分为两个部分,一部分是需要部署到GAE上的服务器端软件,另一部分是用户电脑上运行的客户端软件。用户需要将服务器端软件上传到GAE中[a],然后通过客户端软件与其连接,获取被封锁的内容。为方便用户使用,GoAgent也提供了自动部署工具。
从2015年8月以后,GoAgent已停止维护,并被开发者删除。GoAgent作者 phuslu 于2015年3月开始开发另一个翻墙软件GoProxy,现已删除。
特性
由于使用Python开发,GoAgent支持多种操作系统,例如Microsoft Windows、OS X、iOS、Linux(包括基于Linux开发的移动操作系统、路由器固件,如Android和OpenWrt)[1]。
GoAgent的其他特性如下:
运行原理
GoAgent的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。它使用Google App Engine的服务器作为中传,将数据封包后传送至Google服务器,再由Google服务器转发至目的服务器,接收数据时方法也类似[2] 。由于服务器端软件基本相同,该中转服务器既可以是用户自行架设的服务器,也可以是由其他人架设的开放服务器。
因为中国大陆的防火长城难以完全封锁,或出于其他考虑不能完全封锁此Google服务,到目前为止几经更新的GoAgent仍旧可以正常使用,尽管在2014年5月底开始,Google又一次遭到中国政府防火长城的大规模封锁,Google首页至今仍不能从中国大陆正常存取。[3][4]
GoAgent可以通过HTTP和HTTPS两种方式连接Google服务器,用户可以根据自己的网络情况酌情选择。
由于防火长城的屏蔽策略调整,Google IP被悉数封锁,因而该工具的破网效率已大不如前。但是由于Google采用了任播技术,只要用户能够自行找到可用的Google IP(例如使用GoGoTester),那么GoAgent就可以通过用户找到的IP直接与Google连接,从而提高连接成功率和连接速度[5]。
缺陷
身份暴露风险
GoAgent依赖Google App Engine服务器,在发送请求、获取网页内容的时候,请求报头中的User Agent会带有唯一的AppID[6],存在暴露身份信息的风险[7]。
证书风险
- GoAgent 在启动时会尝试自动往系统的可信根证书中导入一个名为“GoAgent CA”的证书。由于这个证书的私钥是公开的,导致任何人都可以利用这个私钥来伪造任意网站的证书进行 HTTPS 中间人攻击。即使在不开启 GoAgent 时,这种攻击的风险仍然存在。换而言之,一旦这个证书被导入,攻击者可以用此绕过几乎所有网站的 HTTPS 保护。
- 在GoAgent 3.2.1版本之后这个漏洞得以修复。
- GoAgent 本身对 TLS 证书的认证存在问题,而且默认时不对证书进行检查,这导致在使用 GoAgent 时存在 HTTPS 中间人攻击的风险。[8]
注意事项
由于GoAgent所使用的Google App Engine被认为可以作为开放式代理,因此其使用的美国加利福尼亚州山景城Google数据中心的出口IP地址段会受到部分网站的封锁或限制(如对维基百科只能浏览而不能编辑),以防止恶意攻击。
衍生项目
GoAgent发布以后,民间的开发者又发起了众多的衍生项目,以方便用户使用GoAgent,像是XX-Net和GreatAgent和GoAgent+。
XX-Net
XX-Net是一个免费的桌面应用程序,是基于GoAgent的一个GUI图形界面程序,使用起来简单方便,减少了GoAgent繁琐的设置步骤,为被审查区域的用户提供快速、可靠和安全的开放互联网访问。它使用GAE代理服务器通过防火墙。可以自动扫描IP。XX-Net是github上的一个项目。安卓系统则有衍生项目Xndroid。
GreatAgent
此项目旨在提供公共而开放的服务端供普通用户使用,有GreatAgent-ga与GreatAgent-wp两个版本,分别对应GoAgent与WallProxy这两个常用的代理程式;除此之外,还提供配置好的Firefox,免去了用户自行配置、调试的麻烦。
目前,GreatAgent已部署830个适用于GoAgent的AppID和1210个适用于WallProxy的AppID,两者在功能上有所不同。GreatAgent-ga版本仅支援Google的搜寻和YouTube的在线视讯,并且不支援中国大陆国内网站的访问;而GreatAgent-wp则没有上述限制,被称为“电影 AppID”,意指其连线速率较快,但是抗干扰能力不佳。[1]
GoAgent GUI
GoAgent GUI是一个GoAgent图形化版本。
GoAgent+
Smartladder是一个内置4947个AppID的GoAgent的打包版本集,包括单独的GoAgent打包以及作者提供的带该工具的浏览器便捷版。
AppID列表
由于GAE有流量限制和应用数量限制,所以有志愿者收集和维护了开放的AppID的列表供大家使用,这样,用户便可以在不花钱的情况下,通过类似负载均衡的机制绕过流量限制。
浏览器
有些民间志愿者将GoAgent配置好,并将其与Chromium等开源的浏览器整合,制作成整合包,从而做到一键启动,例如天行浏览器(Xskywalker)、畅游无限浏览器等。
枫叶香蕉
枫叶香蕉是一个用Delphi语言编写的,基于GoAgent、WallProxy等代理工具的代理客户端。
2014年11月4日,北京警方以“涉嫌寻衅滋事”为由抓捕了其主要维护者许东(OnionHacker)。据报道许东被抓捕和其推特发布支持占中言论有关,以及其推特发布的追求自由言论是其身陷囹圄的重要因素。之后,网络著名维权人士“超级低俗屠夫”在其推特发起募款行动,为其筹集律师费用。在民间维权力量积极活动和施压下,许东于2015年1月30日离开北京第一看守所,恢复自由,总共被关押89天.[9]。
在许东被捕后,GoAgent 的主要贡献者之一phus.lu 在其Twitter中发表声明,称其“从未在 GoAgent 获得直接或间接的经济利益,也未接受过任何境外和境内组织的捐助;从未提供基于 GoAgent 的公共服务和政治看法”。phus.lu 解释到,在许东被捕后发表声明,是为了“以防万一”[10]。
停止维护
2015年8月25日,在Shadowsocks作者迫于警方压力删除其项目之后,GoAgent的开发者也删除了该项目。[11]
GoAgent项目删除不久,GitHub即遭到了来自中国的DDoS攻击。开发者普遍认为此次攻击与中国政府有关。[12]2015年8月28日,电子前哨基金会针对Shadowsocks和GoAgent被删除一事发表评论,对中国政府针对翻墙软件作者的打击表示了强烈的谴责。[13]
注释
- ^ 也可以选择使用已经由其他人部署的GoAgent服务器,此情况下则不需要上传也不需要注册账号。
参考资料
- ^ 1.0 1.1 GoAgent FAQ. [2013-07-24]. (原始内容存档于2014-09-25) (中文(中国大陆)).
- ^ GoAgent Wiki. [2012-08-24] (中文(中国大陆)).[失效链接]
- ^ Dan Levin. 谷歌服务在中国遭遇大规模干扰. 纽约时报中文网. 2014-06-03 [2014-09-24]. (原始内容存档于2015-08-05) (中文).
- ^ Keith Bradsher,Paul Mozur. 中国强化网络监管,谷歌的生意不好做. 纽约时报中文网. 2014-09-23 [2014-09-24]. (原始内容存档于2020-08-10) (中文).
- ^ Tiank. 让GoAgent通过IPV6科学上网. FreeBuf. [2016-01-06]. (原始内容存档于2015-10-29).
- ^ URL Fetch Python API Overview. [2016-01-06]. (原始内容存档于2016-04-27).(英文)
- ^ 用goagent干坏事的同志小心暴露你身份. [2013-05-05]. (原始内容存档于2013-05-07).(简体中文)
- ^ 翻墙软件 GoAgent 的安全风险. [2016-01-06]. (原始内容存档于2020-06-17).
- ^ 马平. 许东在推特支持香港占中 被以“涉嫌寻衅滋事罪”带走. 自由亚洲电台. 2014-11-11 [2014-11-13]. (原始内容存档于2020-05-02).
- ^ GoAgent 作者 Phus Lu 发布澄清声明. 开源中国. 2014-11-13 [2014-11-13]. (原始内容存档于2014-11-13).
- ^ GoAgent开发者删除项目,GitHub再次受到DDoS攻击. Solidot奇客. (原始内容存档于2016-03-06).
- ^ Catalin Cimpanu. Recent GitHub DDOS Linked to Chinese Government and Two GitHub Projects. Softpedia. 2015-08-29 [2016-01-07]. (原始内容存档于2016-05-06).(英文)
- ^ O'Brien, Danny. Speech that Enables Speech: China Takes Aim at Its Coders. 电子前哨基金会. [2016-05-28]. (原始内容存档于2016-06-24) (英语).(中文翻译)
外部链接
- GoAgent在GitHub的主页(已删除)
- GoAgent在GitHub的代码库(已删除)
- goproxy(已删除)
- XXNet在Github上的主页 (页面存档备份,存于互联网档案馆)
- Xndroid在Github上的主页 (页面存档备份,存于互联网档案馆)