机场知识 知识解读
Trojan 是什么?HTTPS 伪装协议的原理、回落机制与客户端支持
Trojan 把代理流量放进标准 TLS 连接,外观与 HTTPS 网站一致,认证失败时回落到真实网页。本文讲清工作原理、关键参数、WS 与 gRPC 组合、优缺点、客户端支持与机场中的用法。
- 作者
- 网络研究组
- 首次发布
- 最后更新
- 内容类型
- 知识解读
- 资料核对
- 阅读时间
- 约 3 分钟
信息可能随服务调整而变化,请以最新官方信息为准。
直接答案
Trojan 是一种基于 TLS 的代理协议,设计思路是让代理流量和访问普通 HTTPS 网站完全一样:服务器持有合法证书,客户端完成 TLS 握手后发送密码认证;认证失败时,服务器把连接交给一个真实网站,探测者只会看到正常网页。Trojan 结构简单、客户端支持最广,是很多机场的主力协议,局限在于需要域名证书,且存在 TLS in TLS 特征。
- 定义 Trojan
- 一种以 TLS 为基础的代理协议。客户端与服务器建立标准 TLS 连接后,在连接内发送由密码派生的认证信息和目标地址;服务器认证失败时将连接转交给预设的网站,使其对外表现为普通 HTTPS 服务。
Key Takeaways · 要点速览
- Trojan 本身不做加密,安全性与伪装都来自标准 TLS。
- 回落机制让未认证的访问看到真实网站,提高了抗主动探测能力。
- 需要域名与证书,跳过证书验证会削弱安全性,应谨慎开启。
- 客户端支持最广,适合作为日常主力或兼容性兜底。
Trojan 的直接解释
Trojan 的思路可以用一句话概括:不去模仿 HTTPS,而是直接使用 HTTPS 的那一层 TLS。服务器监听 443 等常见端口,持有某个域名的合法证书;客户端像浏览器一样完成 TLS 握手,然后在加密通道里发送密码和目标地址。对外部观察者来说,这条连接与访问某个网站没有明显区别。
正因为外观就是标准 TLS,Trojan 不需要复杂的伪装逻辑,协议本身也非常简短,这让它成为客户端支持最广的协议之一。
工作原理
- 客户端向服务器发起 TLS 握手,SNI 填写证书对应的域名。
- 握手完成后,客户端发送由密码计算出的哈希值,以及要访问的目标地址。
- 服务器校验哈希,通过后开始在这条 TLS 连接内转发数据。
- 校验失败或收到的根本不是 Trojan 请求时,服务器把连接交给预设的回落目标(通常是一个正常网站)。
回落机制的意义
主动探测是指审查方主动连接可疑服务器,看它如何响应。普通代理服务器面对异常请求可能直接断开,这本身就是特征。Trojan 的回落让探测者拿到一个正常网页,从而降低被识别的概率。VLESS 也继承了类似的回落设计,Reality 则把这一思路推进到握手阶段。
伪装的局限
- TLS in TLS:通过 Trojan 访问 HTTPS 网站时,外层 TLS 里还有一次内层握手,数据包长度与时序存在规律。AnyTLS 与 VLESS Vision 都是针对这一点的改进。
- TLS 客户端指纹:不同程序发起 TLS 握手的细节不同,代理内核默认的握手指纹可能与浏览器不一致。部分客户端提供「客户端指纹」选项,模拟常见浏览器的握手特征。
- 证书与域名:需要维护域名和证书,证书过期或域名被干扰都会影响可用性。
常见传输组合
| 组合 | 特点 | 适用情况 |
|---|---|---|
| Trojan + TCP + TLS | 最标准的形态 | 直连节点、专线落地 |
| Trojan + WS + TLS | 在 WebSocket 上承载,可经过 CDN | 服务器 IP 不理想、需要 CDN 时 |
| Trojan + gRPC + TLS | 基于 HTTP/2,支持多路复用 | 部分内核与机场提供 |
WebSocket、gRPC 等扩展传输并非所有客户端都支持,以客户端最新说明为准。
客户端中的关键参数
| 参数 | 含义 | 建议 |
|---|---|---|
| server / port | 服务器地址与端口 | 按订阅自动填写 |
| password | 认证密码 | 不要外泄订阅链接 |
| sni | TLS 握手中声明的域名 | 应与证书匹配 |
| skip-cert-verify / allowInsecure | 跳过证书验证 | 默认关闭 |
| alpn | 应用层协议协商 | 按订阅下发 |
| client-fingerprint / fp | 模拟浏览器握手指纹 | 客户端支持时可按机场建议开启 |
注意「跳过证书验证」会让客户端不再检查证书合法性。除非机场明确要求,否则保持关闭,否则连接可能被冒充而你无法察觉。
优点与局限
| 方面 | 表现 |
|---|---|
| 客户端兼容性 | 最好,主流客户端均支持 |
| 配置复杂度 | 低,参数少 |
| 抗主动探测 | 较好,依赖回落 |
| TLS in TLS 特征 | 存在,协议本身不处理 |
| 证书依赖 | 需要域名与有效证书 |
| UDP 受限网络 | 基于 TCP,不受影响 |
客户端支持情况
Clash Verge Rev(Mihomo 内核)、sing-box、v2rayN、Shadowrocket、Stash、Surge 等主流客户端均支持 Trojan 的基础形态;WS、gRPC 等扩展传输和指纹选项的支持程度不同,请以客户端最新版本说明为准。电脑端入门可参考 Clash Verge Rev 完整使用教程。
在机场中的使用场景
- 日常主力:参数少、兼容性好,很多机场把 Trojan 作为默认协议。
- 公司网络与公共 Wi-Fi:UDP 受限时,基于 TCP 的 Trojan 比 Hysteria2 更可靠。
- 多设备混用:家里设备客户端各不相同时,Trojan 节点最不容易出现「某个客户端导入不了」。
遇到握手失败、证书错误,可按 TLS 握手失败怎么办 逐项排查。
结论
Trojan 用最简单的方式获得了标准 HTTPS 外观,配合回落机制具备不错的抗探测能力,是兼容性最好的主力协议之一。它不处理 TLS in TLS 特征,也离不开证书;当客户端支持时,可以把 VLESS + Reality 或 AnyTLS 节点一起纳入对比。完整对比见 代理协议对比。
常见问题
Trojan 节点为什么提示证书错误?
常见原因是系统时间不准、节点的 SNI 与证书域名不一致,或服务端证书过期。先校准系统时间并更新订阅;如果问题集中在个别节点,多半是服务端证书问题,可以联系机场处理。
可以开启「跳过证书验证」吗?
不建议默认开启。跳过证书验证后,客户端不再确认对方是否持有合法证书,存在被中间人冒充的风险。只有在机场明确说明需要开启时才使用,并了解其安全代价。
Trojan 和 VLESS 哪个更好?
Trojan 结构简单、兼容性最好;VLESS 更灵活,可以搭配 Reality 和 Vision 流控处理证书依赖和 TLS in TLS 特征。新手用 Trojan 更省心,客户端支持时可以把 VLESS 节点加入对比。
Trojan 支持 UDP 吗?
协议本身支持在 TLS 连接中转发 UDP 数据,但具体是否可用取决于服务端配置和客户端设置,以机场与客户端说明为准。