摘要:不自己做加密,直接复用 TLS:带密码的请求走代理,不带密码的返回一个普通网页。从外面看就是一条正常 HTTPS 连接,抗封锁能力强,代价是完全依赖域名与证书的维护。

一分钟速查

  • Trojan:伪装成 HTTPS 的代理协议,抗封锁好。
  • 核心思路:复用 TLS,让代理流量「长得像」正常网页访问。
  • 适合谁:需要强伪装、网络审查较严的用户。
  • 客户端:Clash Meta、v2rayN、Shadowrocket 等主流客户端都支持。

Trojan 的原理

先建立一条 TLS 连接

普通 HTTPS 访问是「浏览器 → 网站服务器」的 TLS 加密连接。Trojan 的做法是:客户端先和节点服务器建立 TLS 连接,这一步和访问正常网站完全一样。

带密码走代理,不带密码返回网页

服务器收到流量后,判断「这是正常网页请求,还是带了 Trojan 密码的代理请求」。带密码的走代理,不带密码的返回一个普通网页。

从外面看就是一条 HTTPS 连接

这样一来,从外面看,你和节点之间就是一条再普通不过的 HTTPS 连接,没有明显的代理特征。配合一个能正常访问的域名和证书,伪装效果更好。

Trojan 和 VLESS、Shadowsocks 的区别

协议伪装方式特点
Trojan伪装成 HTTPS抗封锁好,部署简单
VLESS配合 TLS/Reality轻量灵活,最主流
Shadowsocks自定义加密,无明显伪装老牌,实现简单

Trojan 的优势是「伪装得自然」,但它的加密完全依赖 TLS,一旦证书或域名出问题,伪装就失效了。所以用 Trojan 的机场,域名和证书的维护很重要。

用 Trojan 要注意什么

域名要真实

配合一个正常可访问的域名和有效证书,伪装才像样。域名被墙或证书过期,连接会直接失败,客户端通常只报一个含糊的 TLS 错误。

客户端要支持

确认你的客户端内核支持 Trojan,老客户端可能连不上。Clash 老版本需要换成 Meta 内核,v2rayN 和 Shadowrocket 一般都支持。

端口别乱改

Trojan 通常走 443 端口,和 HTTPS 一致才自然。改成非常见端口,流量特征反而更突出。

关于 Trojan 的 3 个误区

  • 「Trojan 比 VLESS 快」——不对,速度和线路有关,协议之间差异很小;
  • 「Trojan 不会被封」——没有不会被封的协议,Trojan 只是更难被识别,不是免死金牌;
  • 「Trojan 要自己配证书」——对,这正是它和 Reality 的差别,Reality 借用真实网站省了证书。