Trojan 协议基于 TLS,代理流量在外观上与访问普通 HTTPS 网站几乎一致,认证失败的连接会被交给一个真实网站处理。它稳定、兼容性好,是很多机场的主力协议之一;但和其他协议一样,节点体验仍主要取决于线路和负载。
概念:与其隐藏,不如混入
Trojan 的设计思路是不制造新的流量特征,而是直接使用标准 TLS,让代理连接看起来就是一次 HTTPS 访问。服务器需要一个真实域名和有效证书,通常监听 443 端口。
原理:一次连接的过程
- 客户端与服务器完成标准 TLS 握手,外部看到的是一次普通 HTTPS 连接。
- 在 TLS 加密通道内,客户端发送密码的哈希值和目标地址。
- 服务器校验密码:正确则代为访问目标网站;不正确则回落到一个普通网站,返回正常网页内容。
在机场环境里,一台 Trojan 服务器背后通常还挂着一个真实的网站页面,用浏览器直接访问节点域名,看到的往往就是这个“门面”。客户端发送的密码并非明文,而是经过哈希处理后的值,并且全程处于 TLS 加密之内,外部无法直接读取。
“回落”机制让主动探测者即使连上服务器,也只会看到一个正常网站,难以确认这是代理服务器。Trojan 的伪装效果依赖证书和域名,证书过期或使用可疑域名会削弱这一点。
常见区别
| 对比项 | Trojan | Shadowsocks | VLESS + Reality | Hysteria2 |
|---|---|---|---|---|
| 安全层 | TLS | 协议自带加密 | Reality | QUIC 内置 TLS 1.3 |
| 认证方式 | 密码 | 密码 | UUID + 公钥 | 密码 |
| 需要域名证书 | 需要 | 不需要 | 不需要 | 通常需要 |
| 抗主动探测 | 回落到真实网站 | 依赖实现 | 转发到目标网站 | 可伪装为网站 |
| 传输层 | TCP | TCP / UDP | TCP | UDP |
Trojan 也可以搭配 WebSocket 等传输方式经过 CDN,是否这样配置由机场决定。各协议详见 Shadowsocks、VLESS 与 Reality、Hysteria2。
实际作用:优点与局限
优点:流量外观接近 HTTPS,加密强度由 TLS 保证;协议在 TLS 之上只加很少的头部,开销低;认证失败时回落,抗主动探测;客户端支持广泛。
局限:
- TLS 套 TLS 特征:访问 HTTPS 网站时会出现加密流量嵌套,长期来看可能成为可被分析的特征,这也是 VLESS 的 Vision 流控试图优化的问题。
- 基于 TCP:在高丢包网络下的表现不如基于 QUIC 的协议。
- 依赖证书:机场证书过期时,客户端会报错无法连接。
使用场景与客户端
- 日常浏览、办公,需要稳定和兼容性;
- 在多种设备间切换,希望节点导入成功率高;
- 网络对 TLS 流量较宽松的环境。
主流客户端基本都支持 Trojan:电脑端的 Clash Verge Rev,Android 端的 Clash Meta for Android,iOS 端的 Quantumult X 和 Shadowrocket,以及跨平台的 sing-box。
选机场时看什么
- 协议只是基础:同样是 Trojan,直连和专线中转的晚高峰表现差别很大。
- 留意证书报错:客户端提示证书错误,可能是机场证书过期或配置问题,应联系客服而不是自行忽略。
- 不要随意跳过证书验证:这会削弱 TLS 的安全性,除非机场明确说明且你了解风险。
- 多协议机场更有弹性:某种协议受干扰时可以切换。
宣传里要警惕“Trojan 无法被识别”“永不被封”这类绝对说法:任何协议都可能被针对,长期可用性取决于机场的维护能力。
常见问题
Trojan 和 VLESS 选哪个?
在同一机场、同一线路下,两者体验通常差别不大。客户端都支持时,可以分别在晚高峰测试后决定。
Trojan 节点超时怎么办?
先检查系统时间和客户端版本,再确认证书是否报错,最后参考 节点超时排查 逐项检查。
为什么开启“跳过证书验证”后才能连上?
说明节点证书存在问题,例如过期或域名不匹配。临时可用,但会降低安全性,应反馈给机场修复。
Trojan 支持 UDP 吗?
协议本身支持 UDP 转发,但是否可用取决于服务端实现和机场配置,游戏或语音用户可以先实测。
机场只提供 Trojan 节点够用吗?
日常使用通常够用。但单一协议意味着没有退路,一旦所在网络对这类流量干扰加剧,就只能等机场调整;有条件时优先选同时提供多种协议的机场。