外观
Trojan 协议是什么?伪装成 HTTPS 的代理协议原理与特点
Trojan 协议是什么、它怎么把代理流量伪装成 HTTPS,这页讲原理、特点和与 VLESS 的区别。
一句话解释
Trojan 是一种把代理流量封装在标准 TLS 连接里的协议:从外部看,它就是一次普通的 HTTPS 访问。服务端收到带正确密码的请求就做代理,收到普通请求就转交给背后真实的网页服务器。
速读要点
- Trojan 的伪装和加密全来自 TLS,不能关 TLS
- 必须有域名和证书,节点配置是域名而非裸 IP 属正常
- 旧版 Clash 内核能用 Trojan 却不能用 VLESS
名字来自「特洛伊木马」的伪装思路,它不是病毒。
Trojan 协议是什么:伪装成 HTTPS 的原理与特点
Trojan 的核心思路是「不做特殊,就当一个 HTTPS 网站」:
- 服务端绑定一个域名,申请正规 TLS 证书,443 端口对外就是一个网站。
- 客户端用 TLS 连上后,第一段数据是密码的哈希值;对上就进入代理模式。
- 对不上的请求原样转给后面的网页服务器,访问者看到的是一个正常网站。
因为用的是标准 TLS,Trojan 的流量特征和浏览器访问 HTTPS 网站一致,这是它相对 Shadowsocks 的主要优势。代价是必须有域名和证书,部署门槛比 SS 高。
| 维度 | 表现 |
|---|---|
| 传输层 | TCP,依赖 TLS 1.2 / 1.3 |
| 加密 | 由 TLS 提供 |
| 开销 | 比 SS 略高(TLS 握手),正常使用感知不明显 |
| 弱网表现 | 基于 TCP,高丢包线路下吞吐下降,和其他 TCP 协议类似 |
实现方面:原始 trojan 项目和功能更多的 trojan-go 都已更新不活跃,但协议本身简单成熟,Xray、sing-box、Mihomo 内核都内置了支持,机场仍在广泛使用。
在订阅里怎么看出 Trojan 节点,和 VLESS、SS 的区别
三种 TCP 协议在配置里的差别很直观:
| 对比项 | Trojan | VLESS + TLS | Shadowsocks |
|---|---|---|---|
| 配置类型字段 | type: trojan | type: vless | type: ss |
| 身份认证 | password | uuid | password + cipher |
| 是否必须 TLS | 是,协议建立在 TLS 上 | 几乎总是,也可用 Reality | 否,自带加密 |
| 服务器地址 | 多为域名,端口常见 443 | 域名或 IP | 域名或 IP |
| 关键附加字段 | sni、可选 network: ws/grpc | flow、reality-opts | plugin、udp |
| 需要域名证书 | 是 | TLS 需要,Reality 不需要 | 不需要 |
| 旧版 Clash 内核 | 支持 | 不支持 | 支持 |
一个检查项:Trojan 配置里的 skip-cert-verify 应为 false。机场若默认设为 true,说明证书配置不规范,连接仍可用但失去了防中间人保护。字段名以客户端文档为准。
和选机场有什么关系
Trojan 节点兼容性好:Clash(含旧内核)、Mihomo、sing-box、Shadowrocket、v2rayN 都支持,比 VLESS 对客户端的要求低。如果你用的客户端较旧又想要 TLS 协议,Trojan 比 VLESS 更稳妥。
选机场时的参考:
- Trojan 节点需要域名,所以节点配置里会有服务器域名而非裸 IP,这是正常的。
- Trojan 在专线上的表现和 SS 接近,在普通公网线路上弱网表现一般,丢包严重时看 Hysteria2。
- 协议不影响晚高峰速度,看线路百科。
常见误区
- Trojan 是木马病毒:只是借用了名字里的伪装思路,是一个开源代理协议。
- Trojan 比 VLESS 更安全:两者都依赖 TLS,安全性相当,差别在设计和搭配方式。
- Trojan 需要特殊客户端:主流客户端都原生支持。
- Trojan 能解决丢包:它基于 TCP,弱网下和 SS、VLESS 一样受丢包影响,抗丢包要看 QUIC 类协议。
常见问题
Trojan 和 VLESS 怎么选
客户端较旧(旧版 Clash 内核)只能用 Trojan;现代客户端两者都支持,体验相当,机场给哪个用哪个即可。两者都基于 TCP + TLS,弱网表现接近,不必为了协议换机场。
Trojan 节点提示证书错误怎么办
先检查设备系统时间是否准确,时间偏差会导致证书校验失败;其次是机场的证书过期或域名更换,更新订阅看是否已修复;最后看客户端里的 SNI 和服务器域名是否一致。更多见 DNS / TLS 问题排查。
Trojan 可以不开 TLS 吗
不行。Trojan 的加密和伪装全部来自 TLS,协议设计上就建立在 TLS 之上,客户端里关掉 TLS 或勾选「跳过证书验证」都不是正常用法,后者还会丧失防中间人的保护。
Trojan-Go 节点和 Trojan 节点有什么区别
trojan-go 是功能更多的实现,兼容原始 Trojan 协议,额外支持 WebSocket、多路复用等。多数客户端把两者都当作 trojan 类型导入,附加功能是否生效取决于机场配置和客户端内核。
下一步
- 客户端较旧、只想用 TCP + TLS 协议的机场:找机场筛选器
- Trojan 节点全部超时,先排除本地与订阅问题:节点全部超时排查
- 升级到现代内核以同时使用 VLESS:macOS Clash Verge Rev 教程