第一幕 · 荒芜年代与 GAE 的云端奇袭
在 2011 年左右,普通中文网民要想突破防火长城的封锁,面临着极其高昂的技术与经济门槛。当时个人租用境外 VPS 服务器(如 Linode、DigitalOcean)不仅费用高昂、需要双币信用卡,更需要精通 Linux 命令行操作;而免费的公共网页代理与传统 PPTP/L2TP VPN 则频繁遭遇大面积封锁。
面对这一严峻困局,Phus Lu 提出了一个极具创见的破局思路:既然普通用户无法独立维护服务器,为何不借用全球顶级云计算平台的基础设施?当时 Google 旗下的 Google App Engine(GAE)允许任何开发者免费托管 Web 应用,并拥有极其庞大且当时尚未被彻底封锁的 Google 全球 IP 池。2011 年 4 月 19 日,Phus Lu 在 Google Code 上正式建立了 GoAgent 项目。用户只需本地运行一个由 Python 编写的轻量客户端,通过上传工具将服务端部署到自己申请的 GAE 空间上,就能以近乎零成本的方式获得稳定、高速且端到端加密的专用代理通道。[1]
第二幕 · 海量 AppID 与一代网民的翻墙启蒙
随着 GoAgent 的迅速成熟,中文互联网迎来了一场前所未有的平民化翻墙启蒙浪潮。GoAgent 完美契合了当时网民日常浏览网页、查阅学术资料与观看 YouTube 的核心需求。为了绕过 GAE 单个应用每天 1GB 的流量限额,Phus Lu 在客户端中设计了精巧的 AppID 轮询与负载均衡机制,用户只需在配置文件中填入用竖线隔开的多个 AppID,客户端即可自动在后台切换分配流量。
在 GoAgent 的鼎盛时期,无数技术博客与论坛争相传授“如何部署 GoAgent”、“如何导入自签名根证书”以及“如何配合 Chrome 扩展 SwitchySharp / AutoProxy 实现自动分流”。围绕 GoAgent 还衍生出了公共 AppID 集群、自动化优选 Google IP 脚本以及各类第三方免配置整合包。毫不夸张地说,GoAgent 是整整一代中文互联网用户认识现代网络、理解代理原理并第一次睁眼看世界的启蒙导师。[4]
第三幕 · Everything that has a beginning has an end
然而,过度依赖单一跨国商业云服务的弱点也随着审查强度的指数级升级而逐渐凸显。从 2014 年中开始,防火长城开始对 Google 的全球 IP 地址段展开系统性的阻断与干扰,导致 GAE 的可用 IP 迅速枯竭,用户必须依靠专门的扫描工具每日苦寻幸存的可用节点。
2015 年 8 月,不可抗力风暴集中降临。在 Shadowsocks 原作者被要求停更的三天之后,2015 年 8 月 25 日,Phus Lu 删除了 GoAgent 在 GitHub 上的主要源码,并将项目描述修改为富有深意的一句话:“Everything that has a beginning has an end”(万物有始必有终)。国际人权与技术公益组织电子前沿基金会(EFF)随后在《China takes aim at its coders》报告中专门记录了这一事件。这一句优雅而平静的道别,宣告了长达四年的 GAE 云代理时代的正式落幕。[2]
第四幕 · 薪火相传与现代平台的先声
GoAgent 虽然退场,但其激起的时代余响却极其深远。就在 GoAgent 仓库清空的十天之后,2015 年 9 月 5 日,全新项目 V2Ray 发布了它的初始提交。在其首份技术自述中,开发者赫然将 GoAgent 与 Shadowsocks 删库事件并列写为核心开发动机,并将兼容 GoAgent 协议作为初代功能之一,立志打造不再依附于单一平台、具备强大抗摧毁能力的模块化通用工具包。
此后,Phus Lu 转入更为低调纯粹的技术探索,开发了用 Go 语言重写的 Goproxy,并在高性能系统编程领域持续奉献了 phuslu/log 等顶级开源成果。GoAgent 留下的不仅是历史记忆,更是中文开发者在密不透风的铁幕前以智慧开辟自由之路的不朽见证。[3]