Trojan 协议是什么?TLS 伪装原理与使用场景
Trojan 的思路很直接:把代理流量伪装成一条完全正常的 HTTPS 连接。它必须搭配 TLS 和真实的域名、证书,用密码验证身份,让审查设备看上去就像在访问一个普通网站。
快速结论:Trojan 是应用层代理协议,它的”隐身”完全建立在加密层 TLS 之上——没有 TLS 和真实证书,Trojan 就无从谈起。它走 TCP、实现简单、伪装可靠;代价是需要自备域名和证书,节点成本略高。想先补协议基础,可读什么是代理协议。
Trojan 是什么
Trojan 是一个应用层代理协议,诞生的动机是:与其费力把流量”伪装得不像代理”,不如干脆让它就是一条标准 HTTPS。它不追求复杂的自研加密算法,而是直接站在 TLS 加密层 的肩膀上——反正全世界的 HTTPS 网站都在用 TLS,混进去最安全。
工作原理:真实 HTTPS + 密码验证 + 回落
Trojan 服务器同时”扮演”一个真实的网站。它的工作流程大致是:
- 客户端连接服务器的 443 端口,先完成一次标准的 TLS 握手,和访问任何 HTTPS 网站一模一样;
- 握手后,客户端发送一个密码(经过哈希)加上要访问的目标地址;
- 服务器校验密码:正确就转发流量;如果密码错误,或者只是一个普通浏览器/探测者访问,服务器就把它当成正常网站请求,回落(fallback)到一个真实网页。
第 3 步是 Trojan 的精髓:主动探测者去连它,得到的是一个普普通通的网站,完全看不出这是代理节点。这种”答不上暗号就当普通访客”的设计,也叫回落到后端网站——机场通常会把回落目标设成一个真实网页或反向代理,让探测者连进来只看到正常内容。所以 Trojan 的伪装思路不是”加密得看不懂”,而是”从协议层面看,它本来就是一个正常的 HTTPS 网站”。
走 TCP,且强依赖 TLS
Trojan 的流量走 TCP(传输层),并且强制依赖 TLS(加密/安全层)。这点要分清层次:TLS 不是”机场协议”,而是给连接加密、提供证书验证的安全层;Trojan 把自己的安全性整个建立在它上面。这也带来一个硬性要求——
**你必须有一个真实的域名,并为它申请证书(如免费的 Let’s Encrypt)。**没有域名和有效证书,Trojan 的 TLS 握手就会露馅,伪装也就失效了。这是它和不需要证书的 Shadowsocks 在部署上的最大不同。
和 VLESS、Shadowsocks 的区别
Trojan 常被拿来和 VLESS + REALITY、Shadowsocks 比较,核心差异在”伪装思路”和”是否需要域名证书”:
| 协议 | 加密来源 | 是否需要自有域名证书 | 伪装思路 |
|---|---|---|---|
| Trojan | 依赖 TLS | 需要 | 自己就是标准 HTTPS |
| VLESS + REALITY | 依赖 REALITY | 不需要(借用真站证书) | 冒充在访问某真实大站 |
| Shadowsocks | 自带 AEAD | 不需要 | 无特征随机流 |
可以看到,Trojan 和 VLESS 协议 都靠 TLS 系伪装,但 Trojan 要用你自己的证书,REALITY 技术 则聪明地借用别人的证书;而 Shadowsocks 走的是完全不同的”无特征”路线。
对机场来说,Trojan 意味着什么
因为每个 Trojan 节点都要绑一个真实域名和证书,机场要维护一批域名、处理证书的自动续期,成本和运维复杂度都比 Shadowsocks 高一些——这也是有些低价小机场宁可只堆 SS 节点的原因。反过来看,愿意认真提供 Trojan/TLS 系节点,往往能侧面反映一个机场的技术能力和用心程度。对用户而言,Trojan 节点的体验特点是伪装稳、在多数环境下不易被针对;但它的抗封锁上限受限于域名本身是否”干净”——如果机场用的域名已经被大量滥用甚至被封,再好的协议也救不回来。
优点与局限
- 优点:原理简单、实现稳定;伪装成主流 HTTPS,在多数环境下可靠、隐蔽;性能开销小。
- 局限:必须自备域名和证书,节点搭建成本略高;一旦对应域名或证书被针对,伪装就会受影响;抗最高强度主动探测的能力,一般认为略逊于借用真实站点证书的
REALITY。
客户端、适用场景与常见误区
支持 Trojan 的客户端很广泛,基于 mihomo 内核的 Clash Verge Rev 等都能直接导入。它适合这些场景:需要稳定、伪装成正常网页浏览的日常使用,尤其适合线路和域名都比较干净的机场。
常见误区:**Trojan 不是”不加密”。**有人看到它”没有自带加密算法”就以为它不安全,其实它的加密由 TLS 提供,安全性取决于 TLS 配置是否规范、证书是否真实有效。另一个误区是把 Trojan 和 Trojan-Go 等实现混为一谈——那是不同的软件实现,协议本身是一致的。还要提醒一点:Trojan 的密码一旦泄露,别人也能连你的节点、消耗你的流量,因此妥善保管订阅链接同样重要。
下一步:想知道同为 TLS 系的 Trojan 和 VLESS 到底该选谁,读 Trojan 与 VLESS 对比;想对比它和最轻量的老牌协议,读 Shadowsocks 与 Trojan 对比。