Phus Lu

协议与传输

GoAgent 创作者,Goproxy 开发者 · 2011 — 至今

又名 phus

GoAgent 的平民启蒙:Google App Engine 时代的云端长城穿越者

以零成本云平台代理开创平民翻墙启蒙时代,在告别中启发了下一代模块化平台

第一幕 · 破晓:荒芜年代与 GAE 的云端奇袭

2011 年初,中文互联网的网络空间与防火长城的对抗,正处于极度荒芜的攻防前夜。

在廉价境外 VPS 与 Shadowsocks 尚未普及的年代,普通网民要想穿越铁幕,面临着几乎不可逾越的技术与经济鸿沟。

当时租用一台境外 VPS 不仅月费昂贵,更需要双币信用卡和熟练的 Linux 运维技能;而免费的公共网页代理充斥着广告与钓鱼风险,PPTP、L2TP 等传统 VPN 则因协议特征鲜明屡遭大面积封杀。

早期基于 GAE 的 GAppProxy 亦因配置繁琐、经常超时而难以为继。

面对这一困局,开发者 Phus Lu 提出了一个天才般的破局构想:既然普通人无法独立维护境外服务器,为何不直接借用全球顶级云计算平台的基础设施?

当时,Google 旗下的 Google App Engine(GAE)为全球开发者提供免费的 Web 应用托管服务,并拥有规模极其庞大且尚未被整体阻断的全球 IP 地址池。

2011 年 4 月 19 日,Phus Lu 在 Google Code 上正式建立了 GoAgent 开源项目。

他在创世文档中立下了朴素而崇高的愿景:“基于 Google App Engine 的简易代理,让获取知识的道路畅通无阻。”

用户只需在本地运行一个轻量级的 Python 脚本,通过上传脚本将服务端部署至自己的 GAE 空间,即可利用 Google 的全球骨干网络建立一条近乎零成本的高速加密通道。[1]

第二幕 · 奇迹:本地根证书与透明抓取引擎

GoAgent 最惊艳的工程创举之一,在于它极其优雅地解决了 HTTPS 流量的透明中继难题。

面对日益普及的 HTTPS 加密网页,传统代理若直接转发,要么无法进行内容级压缩,要么会因证书域名不匹配而在浏览器中触发刺眼的红色安全警报。

Phus Lu 为此打造了一套精巧的本地 SSL 中间人(MITM)解密代理引擎:GoAgent 客户端在本地首次启动时会自动生成专属于本机的自签名根证书(CA.crt)。

用户只需将该证书一次性导入操作系统的受信任根证书颁发机构,GoAgent 的本地 Python 服务(监听 127.0.0.1:8087)便能在后台即时为用户访问的每一个加密域名动态签发合规的伪装证书。

本地客户端将用户的 HTTP/HTTPS 请求打包并经过流式压缩,通过标准 HTTP POST 请求发送至 GAE 上的 fetch.py 服务端;服务端代为在 Google 内部高速抓取目标网页,再以极高的压缩率将响应回传至本地解包渲染。

在当年拨号上网与带宽极其昂贵的网络环境下,这种无感的多级数据压缩使得海外网页的加载速度超越了绝大多数传统 VPN。

更重要的是,GoAgent 完全运行在用户态,无需创建任何虚拟网卡或获取 Root 权限,开辟了应用级规则代理的全新工程路径。[1][2]

第三幕 · 鼎盛:海量 AppID 与整整一代人的平民启蒙

随着 GoAgent 版本的快速成熟,中文互联网迎来了一场波澜壮阔的平民化翻墙启蒙浪潮。

当时 Google App Engine 对每个应用施加了严格的配额限制:单个 AppID 每天仅有 1GB 的免费对外出站流量。

为了彻底打破这层天花板,Phus Lu 在 2012 年发布的 2.x 版本中开创性地实装了多 AppID 自动轮询与负载均衡机制。

用户只需在配置文件的 [gae] 小节中填入由竖线隔开的多个 AppID:appid = id1|id2|id3|id4...。

一个账号即可申请 10 个应用,轻松汇聚成每天数十吉字节的充裕免费流量池;客户端在检测到某一个 AppID 耗尽配额(over_quota)时,会在毫秒级内自动无缝漂移到下一个可用节点,连接丝毫不受中断。

这一机制与当时爆发式普及的 Google Chrome 浏览器及 Proxy SwitchySharp(以及后来的 Proxy SwitchyOmega)扩展形成了天衣无缝的黄金组合。

配合自动同步的 GFWList 规则列表,数以百万计的大学师生、科研人员、程序员与普通网民第一次体验到了“被封锁的网站走代理,国内网站直连”的丝滑分流体验。

无数技术博客与高校论坛争相撰写“小白配置 GoAgent 教程”;毫不夸张地说,GoAgent 是整整一代中国网民理解代理路由、DNS 污染与数字自由的启蒙教科书。[2]

第四幕 · 绞杀:IP 阵地战与风雨飘摇的免费云

然而,当一项突破封锁的工具演变为数百万人的日常基础设施时,针对其宿主环境的系统性绞杀也随之降临。

防火长城(GFW)清醒地认识到:既然无法在加密报文中直接分析 GAE 的流量内容,就只能从传输层的物理 IP 入手。

从 2014 年初开始,审查系统对 Google 的全球 IP 地址段展开了前所未有的地毯式干扰与 BGP 路由黑洞。

2014 年 5 月底,伴随着敏感节点的临近,中国大陆针对 Google 服务的访问遭遇了近乎毁灭性的全面阻断,Google 全球 IP 池在中国大陆大面积变灰瘫痪。

GoAgent 的生存环境急转直下,从轻松的一键配置滑向了残酷的 IP 阵地游击战。

为了维系连接,Phus Lu 与开源社区展开了长达一年多的技术拉锯:GoAgent 在 3.0 版本中引入了 RC4 密码混淆机制,防止 GAE 请求头被明文匹配;更开发了精细的 Google IP 延迟优选与健康检查逻辑。

社区用户自发编写了各类扫 IP 脚本(如 CheckGoogleIP),成千上万名极客每天从 Google 全球 CDN(GGC)中淘洗幸存的可用 IP 段,手工填入 proxy.ini 的 [google_hk] 列表中。

但所有人心里都清楚:将所有希望寄托在单一跨国商业巨头的公共云上,这种模式在国家级审查机器的全面封锁面前,终将退至无路可退的悬崖边缘。[2]

第五幕 · 谢幕:八月的雷霆与「万物有始必有终」

2015 年 8 月,不可抗力的风暴如狂风骤雨般席卷了整个中文翻墙开源社区。

8 月 22 日,Shadowsocks 原创作者 clowwindy 遭遇约谈并被迫清空 GitHub 仓库。

仅仅三天之后的 2015 年 8 月 25 日,风暴的阴云不可避免地笼罩到了 GoAgent 头顶。

这一天,Phus Lu 删除了 GoAgent 在 GitHub 仓库中的所有核心 Python 源码。

他没有留下激烈的辩驳,也没有渲染悲壮的控诉,而是将项目主页的描述改写为了一句平静、苍凉却富有宇宙哲思的英文字句:

“Everything that has a beginning has an end”

(万物有始必有终)

在随后与社区朋友的简短告别中,他留下了一如既往的克制与温情:“感谢曾经的所有同行者。愿大家各自安好,探索技术的初心永不熄灭。”

2015 年 8 月 28 日,国际数字人权公益机构电子前沿基金会(EFF)发布全球深度专题报道《China takes aim at its coders》,将 GoAgent 与 Shadowsocks 的删库事件并列记录,标志着长达四年、影响了一代网民的 GAE 云代理时代就此悲壮落幕。[3]

第六幕 · 淬炼:Goproxy 重生与极致性能的工程师风骨

源码仓库的清空,并没有掐灭自由探索的火焰,反而将中文代理生态推向了更坚韧的现代化蜕变。

就在 GoAgent 仓库清空后短短十天(2015 年 9 月 5 日),全新开源项目 V2Ray 发布了初代提交。

开发者 Victoria Raymond 在创世自述中写下了令无数人动容的历史定调:正是 GoAgent 与 Shadowsocks 的被迫关停,直接证明了抗审查生态决不能过度依附于单一商业平台或固定协议,必须走向复合、模块化与高度抗摧毁的通用架构;V2Ray 甚至在初代功能中专程实现了对 GoAgent 协议的向后兼容,以致敬这位先行者。

而退隐幕后的 Phus Lu,则展现出了一位纯粹硬核系统工程师的从容风骨。

2016 年初,他使用编译型语言 Go 重构了 GAE 代理,发布了 Goproxy(phuslu/goproxy),利用 Go 原生协程、HTTP/2 多路复用与现代 TLS 栈,彻底消除了旧 Python 架构的并发瓶颈。

随后的岁月里,Phus Lu 将其深厚的系统功力投入到了极致性能的底层基础设施研发中:

他独立开源了零内存分配、达到纳秒级极速的结构化 Go 日志库 phuslu/log,高并发 LRU 缓存库 phuslu/lru,以及针对底层网络对抗的 fastdns 与 nginx-ssl-fingerprint。

从 2011 年以一己之力照亮百万网民认知世界的云端灯塔,到面对不可抗力时的超然道别,再到深潜底层代码、将性能推向微秒与零拷贝极限——

Phus Lu 用十年如一日的纯粹代码,在中文互联网的技术编年史上铸就了一座永远令人肃然起敬的平民启蒙丰碑。[4][5][6]

代表作品与核心贡献

基于 Google App Engine 的跨平台 HTTP/HTTPS 代理软件,统治了 2011—2015 年的中文翻墙生态与平民启蒙时代

基于 Go 语言重写的高性能 GAE 代理服务端与客户端实现,全面拥抱 HTTP/2 与多路复用

phuslu/log

访问作品

极致性能的零内存分配结构化 Go 日志库,展现了作者在底层系统工程领域的卓越造诣

phuslu/lru & fastdns

访问作品

面向高并发网络场景的极致性能并发 LRU 缓存与 DNS 解析套件

致敬开发者的坚守

代码或许归档,但火种永不熄灭。为推动网络对抗演进与底层工程突破的开拓者献上一份敬意。

单设备 1 小时内限致敬 1 次 · 匿名无感不收集隐私

编年大事记

GoAgent 项目在 Google Code 正式创建

Phus Lu 创建开源项目,确立“让获取知识的道路畅通无阻”的免费 GAE 云代理愿景。[1]

GoAgent v1.0 架构成熟与本地根证书机制实装

引入动态生成 CA.crt 本地自签名根证书,实现透明 HTTPS 解密与流式压缩中继。[1][2]

GoAgent v2.0 发布与多 AppID 自动轮询机制

突破 GAE 单应用 1GB 流量上限,支持 id1|id2|id3 智能故障切换与 IP 优选。[2]

联动 SwitchySharp 掀起平民翻墙启蒙浪潮

结合 GFWList 规则订阅实现按需分流,成为数以百万计网民认知现代网络的通用工具。[2]

GoAgent v3.0 发布并引入传输层加密

实装 RC4 混淆与防明文关键字过滤,全面优化 Google 全球 IP 探测机制。[2]

防火长城封锁 Google 全球 IP 与社区 IP 阵地战

面对地毯式阻断,社区依托 CheckGoogleIP 展开旷日持久的可用 GGC IP 扫描与阻击。[2]

官方源码仓库清空并发表传世告别语

清空 GitHub 仓库源码,修改描述为“Everything that has a beginning has an end”,EFF 随后发表全球深度报道。[3]

删库事件直接启发 V2Ray 诞生与技术承接

V2Ray 创世提交明确将 GoAgent 被迫停更记录为构建抗摧毁模块化平台的核心动机,并原生兼容 GoAgent 协议。[4]

发布纯 Go 语言重构的高性能 Goproxy

基于 Go 协程、HTTP/2 多路复用与现代 TLS 重写代理内核,突围旧 Python 架构性能瓶颈。[5]

开源极致性能的零内存分配 Go 日志库 phuslu/log

在底层高性能系统编程领域持续深耕,实现纳秒级低延迟与高并发吞吐。[6]

一手来源与考据

小传正文中的关键事实与时间点均基于以下公开一手记录或权威报道:

  1. [1]

    证实 GoAgent 初始创建时间为 2011 年 4 月 19 日及其早期架构与 GPLv2 许可证

    https://storage.googleapis.com/google-code-archive/v2/code.google.com/goagent/project.json
  2. [2]

    归档保存的 GoAgent 客户端源码、proxy.ini 配置文件与多 AppID 轮询机制实现

    https://github.com/out0fmemory/GoAgent-Original/tree/master/goagent-orignal-newest
  3. [3]

    权威国际公益组织记录 2015 年 8 月 Phus Lu 清空 GoAgent 仓库的经过与“Everything that has a beginning has an end”告别语

    https://www.eff.org/deeplinks/2015/08/speech-enables-speech-china-takes-aim-its-coders
  4. [4]

    记录 V2Ray 将 GoAgent 与 Shadowsocks 删库事件并列写为核心开发动机的历史凭据

    https://github.com/v2ray/v2ray-core/commit/4c03bf0d45ba68dc2768bd75b1eb2e2efd23b58d
  5. [5]

    基于 Go 语言重构的高性能代理服务端与客户端实现,支持 HTTP/2 与新一代传输层

    https://github.com/phuslu/goproxy
  6. [6]

    展现作者在 Go 语言底层零内存分配与纳秒级性能优化领域的卓越工程成果

    https://github.com/phuslu/log
资料边界与事实声明

本文严格基于 Google Code 归档元数据(code.google.com/p/goagent)、GitHub 历史公开代码备份、开源提交记录及电子前沿基金会(EFF)的公开报道撰写。恪守开源社区伦理底线,绝不调查、推测或记录开发者的现实个人生活、线下行踪与私人隐私;对 2015 年仓库清空与告别事件,严格引用公开记录的仓库变动及国际公益机构的同期事实转述。

修订历史:
  • :基于 Google Code 归档元数据、GitHub 历史代码备份、EFF 专题报道与 V2Ray 创世提交,重构六幕非虚构小说化叙事与完整技术年表。
  • :深度考据 Google Code 归档与 EFF 报告,引入 2011 创世愿景、2013 AppID 轮询说明与 2015-08-25 删库告别原话。

发现人物信息不准确?

写明需要纠正的内容,可附相关链接。资料会在人工核验后更新。