Trojan 的木马哲学:放弃对抗,将自己变成互联网本身
以特洛伊木马设计哲学开创真实 HTTPS 拟态与 Fallback 回落机制,奠定现代代理防御通用范式
第一幕 · 困局:特征对抗的死胡同与未知即罪的审查深渊
在 2017 年前后,翻墙生态正经历着一场空前深刻的技术信任危机。
此前无论是 Shadowsocks 赖以成名的纯随机对称加密流,还是各类外挂的 HTTP/TLS 简易混淆插件(如 simple-obfs),在防火长城日益精进的流量分析系统面前开始频频失效。
审查设备不再尝试去暴力破解传输密钥,而是采取了一种冷酷的全新判定逻辑——“未知即罪”(Drop unrecognized traffic)。
在国际出口的大流量通道上,如果一个长连接表现出极高熵的加密随机度,却在传输层完全没有任何符合标准协议规范的握手协商与明文证书交互,防火长城便会直接将其判定为疑似翻墙隧道,施加高延迟、丢包乃至长连接重置阻断。
开发者们陷入了一场疲惫不堪的修补死循环:每当设计出一套自认为精巧的“伪装”协议,审查方很快就能通过数据包分布、交互时序或主动探测找到破绽。[1]
第二幕 · 奠基:特洛伊木马——将自己变成互联网本身
在这场对抗陷入僵局的历史关头,开发者 GreaterFire 提出了一个极具颠覆性的哲学转向:不要再去发明任何带有自定义特征的混淆协议,也不要试图与审查者在特征伪装上斗智斗勇。
最安全、最无懈可击的掩体,就是整个现代互联网赖以运转的骨干基础设施本身——标准 HTTPS。
2017 年 10 月 15 日,GreaterFire 在 GitHub 提交了项目创世代码(Commit 1ecc6c1),项目定名为 Trojan(特洛伊木马)。
次日,他在 README 中写下了那句被后世无数次引用的创世宣言:“An unidentifiable mechanism to bypass GFW.”
在官方技术文档中,GreaterFire 进一步将这种工程哲学升华为传世名言:“为了突破信息封锁,人们不断尝试用强加密与随机混淆来欺骗审查,而最佳实践通常是模仿 HTTPS 等其他协议;Trojan 则迈出了决定性的一步——它本身‘就是’ HTTPS,或者至少让审查者确信它就是一个 HTTPS 服务器。”
Trojan 彻底抛弃了在流量外层叠加花哨特征的旧路,百分之百使用标准且被全球信任的 TLS 1.2/1.3 协议,要求部署者配置真实机构颁发的有效域名证书,在握手阶段与全球主流网站完全无异。[3][4][1]
第三幕 · 绝杀:Fallback 回落机制与首包极简认证
如果仅仅是采用了真实 TLS 握手,Trojan 还不足以封神;GreaterFire 对现代翻墙技术最深远的突破,在于他在架构中首次发明了“Fallback(请求回落)”机制。
以往的代理服务端一旦遭遇审查设备的主动探测(Active Probing),由于收到的是未认证的探测扫描数据,往往会直接挂断连接或返回异常错误,这在审查方看来本身就是一个暴露身份的强特征。
Trojan 创造性地重构了服务端的路由逻辑:当客户端完成真实的 TLS 握手后,Trojan 服务端会首先读取连接的首个明文数据包。
该数据包严格由 56 字节的密码 SHA224 散列值、回车换行符(CRLF)、类 SOCKS5 请求及附带的数据载荷(Payload)构成;首包紧跟载荷的设计不仅消除了特定的包长特征,更为代理连接省下了一整次网络往返(1 RTT)。
最精妙之处在于:如果收到未经授权的外部扫描或格式不符的恶意探测,Trojan 绝不报错或断开,而是不动声色地将整条解密后的连接“回落”转发给本地运行的真实 Web 服务器(如 Nginx、Caddy 或 Apache)。
探测者无论发送怎样的 HTTP 请求,得到的都是一个货真价实、合规运转的个人博客或静态官网。特洛伊木马的灵魂在于不可区分——让真实世界替自己作答,所有主动探测在这一机制面前瞬间化为无形。[5][6][4]
第四幕 · 演化:UDP 转发、NAT 透明代理与高并发工业演进
确立了特洛伊核心哲学后,GreaterFire 并没有止步于理论设计,而是以极其严谨的 C++11 与现代网络异步框架 Boost.Asio,在不到三年间迅速将 Trojan 打造成工业级的高性能网络引擎。
2018 年 3 月 21 日,Trojan 迎来了具有里程碑意义的 v1.0.0 正式版发布,标志着核心协议与基础架构的全面成熟。
紧接着在 2018 年 4 月 14 日,GreaterFire 合并了经过严密推敲的 feat-udp 分支(PR #30),正式实装基于 SOCKS5 规范的 UDP ASSOCIATE 转发机制,使 Trojan 具备了低延迟代理游戏与实时音视频的完备能力。
随后的演进中,GreaterFire 展现了令人惊叹的系统工程力:他为 Trojan 引入了 Linux 原生 NAT 透明代理支持,打通软路由全局网关流量;实装 TCP Fast Open(TFO)与 SO_REUSEPORT,将连接握手延迟与多核并发处理推向极致;并引入 MySQL(MariaDB)数据库后端支持,原生提供流量计费、配额管理与多用户认证能力。
2018 年 8 月,GreaterFire 发布 trojan-url 工具,正式确立了以 trojan:// 为标准格式的节点链接规范,为后世各平台客户端的扫码导入与配置分享统一了行业语言。[9][10][11][13]
第五幕 · 激荡:特洛伊范式的全球扩散与现代代理生态全面接棒
GreaterFire 提出的“全真拟态与 Fallback 回落”哲学,彻底终结了“自制混淆”的草莽时代,如同一道惊雷照亮了整个抗审查社区的前行道路。
在此之后,全球开源开发者纷纷围绕 Trojan 范式掀起了波澜壮阔的二次创新浪潮:开发者 p4gefau1t 自研 Go 语言版本 trojan-go,进一步扩充了 WebSocket 传输、Smux 多路复用与 Cloudflare CDN 支持;V2Ray 社区核心开发者 rprx 在设计划时代的新协议 VLESS 时,其核心的 Fallback 架构明确向 Trojan 致敬并直接承袭了其思想内核;而后续横空出世的 Xray 与 REALITY 协议,更是将“借用真实网站外衣”的木马理念推向了不可识别的终极形态。
与此同时,跨平台客户端阵营迅速形成了对 Trojan 的全民接纳:Clash、sing-box、Shadowrocket、Quantumult X、Surge、v2rayN 与 v2rayNG 等核心客户端无一例外地将 Trojan 纳为一级支持协议。
无论底层核心如何迭代变迁,特洛伊木马的设计模式已经深深烙印进现代翻墙技术的基因骨髓之中,成为所有新型防封锁协议必须遵从的通用底色。[1][5]
第六幕 · 余响:功成身退的隐士与抗审查史上的哲学灯塔
2020 年 6 月 9 日,GreaterFire 发布了 Trojan 的最后一个正式版本 v1.16.0。
伴随着 2020 年 11 月 8 日在主干分支完成最后一次代码整理,GreaterFire 选择了悄然退场,如同历史上那些最传奇的开源隐士一样,将聚光灯留给了由他亲手点燃的整个生态。
他没有成立任何商业机构,未曾接受任何赞助与荣誉宣讲,也从未在社交网络上卷入任何纷争;在整个开源历程中,他始终严格保持着数字身份的极简与匿名。
但正如《道德经》所言:“大音希声,大象无形。”当今天全球数以千万计的用户在防火长城的重重阻隔之下,通过一条条伪装成普通 HTTPS 的加密隧道自由浏览外部世界时,他们每一次平稳的握手、每一个巧妙的回落,都在默默向这位改变了翻墙史进程的无名先驱致敬。[15][16][2]