术语 Trojan

Trojan 协议是什么?伪装 HTTPS 流量的原理

一种把代理流量伪装成标准 HTTPS 访问的协议:使用真实 TLS 证书建立加密连接,未通过密码验证的访问会看到正常网站,从外部观察难以与普通 HTTPS 流量区分。

更新于

Trojan 是一种以”伪装成标准 HTTPS 流量”为核心思路的代理协议:客户端与服务器之间建立真实的 TLS 加密连接,通过密码验证的连接承载代理流量,未通过验证的访问则被转交给一个真实网站。 从网络中间设备的视角看,连接一个 Trojan 节点与浏览一个普通 HTTPS 网站几乎没有区别。

为什么特征不明显

Shadowsocks 的思路是”让流量看起来什么都不像”,而全随机的流量本身可能成为一种特征。Trojan 反其道而行:“让流量看起来就是最常见的东西”——HTTPS。它的隐蔽性来自三层设计:

  1. 真实 TLS:使用标准 TLS 与有效证书完成握手,与浏览器访问网站的握手完全一致,而非模仿;
  2. 回落机制:任何未携带正确密码的连接(包括主动探测),都会被转发给服务器上配置的真实网站,探测者只能得到”这是一个普通网站”的结论;
  3. 端口惯例:通常监听 443 端口,混在海量正常 HTTPS 流量中。

由于 HTTPS 是互联网的基础流量,无差别封锁它的代价极高,这构成 Trojan 伪装策略的根基。

对域名与证书的要求

伪装成 HTTPS 意味着必须具备 HTTPS 网站的全套要素,这是 Trojan 与 SS 在部署门槛上的最大差别:

  • 必须有域名:TLS 证书签发给域名,客户端也以域名连接服务器;
  • 必须有有效证书:来自受信任 CA 的证书(免费证书即可满足),过期或自签证书会导致客户端校验失败或需要降低安全性的跳过校验;
  • 域名信誉有影响:新注册域名、被标记过的域名可能带来额外风险,服务方通常为节点配置专用域名。

对用户的直接提示是:Trojan 节点连接失败时,除了线路问题,证书过期与域名解析异常也是值得排查的方向。

客户端支持情况

Trojan 已是各主流客户端的标配协议:Clash 系(Clash Verge Rev 等)、Shadowrocket、sing-box、v2rayN 均原生支持,订阅导入后与其他协议节点混合展示,使用上没有额外步骤。基于 sing-box 的配置方式可参考 sing-box 入门

常见误解

  • “Trojan 是最强协议”:协议解决的是”流量像什么”的问题,线路拥堵、服务器超卖不会因协议而改善;
  • “用 Trojan 就绝对无法识别”:伪装显著提高了识别成本,但流量时序、目的地行为等侧信道分析依然存在,没有协议能承诺绝对不可识别;
  • “证书随便配一个就行”:跳过证书校验会让连接暴露在中间人风险下,也削弱伪装一致性,正规服务方不会这样部署。

小结

记住 Trojan 的公式:真实 TLS + 密码验证 + 回落到真实网站 = 看起来就是 HTTPS。它与走”无特征”路线的 Shadowsocks 代表了两种伪装哲学,多数订阅会同时提供,按自己环境实测选择即可。

常见问题

Trojan 和木马病毒有关系吗?
没有任何关系。协议取名 Trojan(特洛伊木马)只是借喻"外表与普通 HTTPS 网站无异、内里承载代理流量"的伪装思路,它是一个开源代理协议,不是恶意软件。安全软件不会也不应把 Trojan 节点识别为病毒。
Trojan 节点比 Shadowsocks 节点更稳吗?
在流量识别较严格的网络环境下,Trojan 的 HTTPS 伪装通常更占优势;但稳定性同样取决于线路质量与服务器负载,协议只是因素之一。实际体验因环境而异,建议在自己的网络下对两类节点分别实测。