↓ 跳过正文

Trojan 协议详解:伪装的艺术

·1550 字·4 分钟
作者
吾便宜
加密协议与网络安全主题插画
*插图来源:[Storyset](https://storyset.com/)*

所有代理协议都在回答同一个问题:怎么让我的流量看起来"正常"。Trojan 给出的答案最有意思——不发明新的伪装,直接变成 HTTPS 本身。这篇把它的原理、优缺点一次讲透。

第一步:Trojan 的核心思想
#

Trojan 的名字来自"特洛伊木马",设计哲学也一脉相承:藏在正常流量里混过去。具体做法是,Trojan 客户端和服务端之间的通信,从外表看和普通的 HTTPS 网站访问一模一样——同样的 443 端口,同样的 TLS 握手,同样的加密流量。

审查者看到的只是一个用户在访问某个 HTTPS 网站,根本分不清里面是刷网页还是代理流量。这就是"伪装的艺术":最高明的伪装不是藏起来,而是变成审查者每天要放行的东西。

第二步:伪装是怎么做到的
#

拆开看,Trojan 的工作流程分三层:

  1. TLS 层:Trojan 强制使用 TLS,而且要求服务端配置真实有效的域名证书。这意味着它的 TLS 握手和任何正规网站没有区别,指纹干干净净。
  2. 验证层:握手完成后,客户端在 TLS 隧道内发送一个密码(Trojan 协议里的 password 字段)。服务端验证通过,才把流量转发到真正的目标。
  3. 回落机制:如果有人不带正确密码来访问,服务端会把它当成普通访客,回落到一个真实的网站(比如一个正常的博客页面)。这是 Trojan 最妙的设计——扫描者看到的永远是一个正常网站,抓不到任何把柄。

对比之下可以发现,Trojan 和 VLESS 的思路是互补的:VLESS 追求极致轻量(参考VLESS 协议详解),Trojan 追求极致伪装。两种思路没有高下,只有场景之分。

第三步:Trojan 的优缺点
#

优点:

  • 隐蔽性强。流量特征就是标准 HTTPS,在"看起来正常"这件事上做到了极致。
  • 部署简单。服务端配置相对直观,有域名和证书就能跑,对自建用户友好。
  • 回落机制兜底。主动探测看到的永远是正常网站,抗扫描能力强。

缺点:

  • 依赖真实域名和证书。没有域名就玩不转,裸 IP 跑 Trojan 等于自废武功。
  • 性能开销比 VLESS 大。TLS 全程加密加解密,对低配服务器不太友好。
  • 生态相对收敛。新特性的跟进速度不如 sing-box 系的协议快,可玩性稍弱。

第四步:Trojan 适合谁
#

如果你在意的是"稳"和"隐蔽",日常就是浏览、看视频,对极限速度没执念,Trojan 是个省心的选择。很多机场的 Trojan 节点常年稳定,口碑一直不错。

如果你追求新特性、喜欢折腾各种新协议,或者服务器配置很低,那 VLESS 系可能更合适。协议之间的完整横评可以看这篇协议横评,以及WireGuard 对比 VLESS帮你理解不同技术路线的取舍。

给新手的搭配建议
#

刚接触 Trojan 的用户,记住三条就行:第一,选带真实域名的节点,没有域名的 Trojan 节点直接 pass;第二,客户端用主流的(v2rayNG、Shadowrocket、NekoRay 都原生支持);第三,不要同时开多个代理软件,避免端口和 TUN 冲突。

理解了 Trojan 的伪装思想,你对"代理协议"这个概念的理解就上了一个台阶:技术对抗的本质,从来不是谁的加密更强,而是谁更像"正常人"。

一个有趣的细节:回落网站要认真准备
#

Trojan 的回落机制有个精妙之处:服务端回落的那个"真实网站",最好是一个真的在运营的网站,而不是一张静态假页面。因为主动探测者会看网站的内容更新频率、证书有效期这些细节。一个长期有人维护的博客做掩护,比临时搭的假站可信得多。这也是为什么懂行的人部署 Trojan 时,都会认真准备一个"前台网站"——伪装这件事,细节决定成败。

从这个角度看,Trojan 玩的与其说是技术,不如说是心理:让审查者"懒得查",比"查不出来"更有效。