摘要:不自己做加密,直接复用 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 借用真实网站省了证书。
