Trojan 协议是什么?Trojan 原理、特点与优缺点

发布于 2026/10/08约 6 分钟读完

Trojan 是一种建立在 TLS 之上的代理协议。它的核心思路是:既然 HTTPS 是互联网上最常见的流量,那就让代理流量在外观上和普通 HTTPS 访问一致。Trojan 结构简单、性能好,是机场中常见的主力协议之一。

Trojan 的原理简述

Trojan 的工作方式可以概括为三步:

  1. 服务端运行在 443 等常见端口上,拥有真实的域名和有效的 TLS 证书;
  2. 客户端与服务端建立标准的 TLS 连接,然后在加密通道里发送一个密码的哈希值和要访问的目标地址;
  3. 服务端验证密码正确后,替客户端转发数据;如果验证失败,就把连接交给一个正常的网站(通常是 Nginx 等 Web 服务)处理。

第三步就是 Trojan 的回落(fallback)机制:对不知道密码的访问者来说,这台服务器看起来就是一个普通网站。

Trojan 协议本身不再额外加密数据,全部依赖外层 TLS,这一点和 VLESS 类似,所以开销较低。

Trojan 的特点

  • 依赖 TLS:必须有域名和证书,证书过期会导致节点不可用。
  • 认证简单:只用一个密码,参数比 VMess 少。
  • 兼容性好:协议实现简单,主流客户端都支持。
  • 可扩展:衍生实现 Trojan-Go 增加了 WebSocket 等传输方式,可以搭配 CDN 使用;但原版 Trojan 一般只走 TCP + TLS。

Trojan 的优缺点

优点:

  • 流量外观接近标准 HTTPS
  • 不做重复加密,性能开销低
  • 参数少(地址、端口、密码、SNI),配置不容易出错
  • 实现成熟,客户端普遍支持

缺点:

  • 需要维护域名和证书,服务端部署门槛比 SS 高
  • TLS 指纹、“TLS 里套 TLS”等特征问题依然存在,这也是后来 VLESS 发展出 Vision、Reality 的背景之一
  • 原版协议对 UDP 的支持依赖于具体实现,部分场景(如部分游戏)体验不一定理想

用户在客户端里偶尔会看到“跳过证书验证(skip-cert-verify / allowInsecure)“选项。从安全角度讲,一般不建议开启,正常配置的 Trojan 节点使用有效证书,不需要这个选项。

与其他协议的对比

协议 外层安全 是否需要域名证书 认证方式 性能开销
Trojan TLS 是 密码 低
VLESS + Reality Reality 否 UUID 低
VMess + TLS TLS 是 UUID + 时间 中
Shadowsocks 无 否 密码 低
Hysteria2 QUIC(TLS 1.3) 通常需要 密码 依网络而定

支持 Trojan 的常见客户端

  • Clash Meta / Mihomo:支持(原版 Clash 也支持 Trojan)
  • sing-box:支持
  • v2rayN(Windows):支持
  • Shadowrocket(iOS):支持

Trojan 和 VMess、SS 一样,属于“几乎所有客户端都能用”的协议,适合在多设备之间共用一份订阅。

选购建议

  • Trojan 节点在大多数网络环境下都稳定好用,可以放心作为主力。
  • 与其纠结协议,不如关注线路类型:同样是 Trojan,专线、中转和直连的体验差距可能很大。
  • 如果某段时间某地区的 Trojan 节点频繁失效,可以试试机场提供的其他协议节点,对比一下。
  • 不要为了“能连上”随意开启跳过证书验证。

常见问题

Trojan 节点突然全部不可用,可能是什么原因?

比较常见的原因是服务端证书过期或域名解析出现问题,这属于机场运维层面的事情,用户只能等待修复或联系客服。也可能是客户端版本过旧、本地网络对 443 端口有特殊限制。可以先换一个其他协议的节点测试,判断问题出在哪一侧。

Trojan 和 Trojan-Go 有什么区别?

Trojan-Go 是在原版 Trojan 基础上扩展的实现,增加了 WebSocket 传输、多路复用等功能,能搭配 CDN 使用。但它在客户端中的支持范围不如原版 Trojan 广泛,部分客户端只支持原版 TCP + TLS 形式。机场订阅里大多数 Trojan 节点使用的是原版形式,兼容性最好。

Trojan 适合打游戏吗?

日常网页、视频、下载都没有问题。游戏需要 UDP 转发和低延迟,Trojan 能否满足取决于服务端实现和线路延迟。对游戏有较高要求的,优先看线路是否为专线,再看节点是否支持 UDP。

Trojan 节点里的 SNI 是什么?

SNI 是 TLS 握手时客户端告诉服务端“我要访问哪个域名”的字段。Trojan 节点的 SNI 一般就是机场为该服务器配置的域名,用于匹配证书。如果节点地址填写的是 IP 或其他入口域名,就需要单独指定 SNI,否则证书校验会失败。这个参数通常已经包含在订阅中,用户不需要自行填写或修改。

Trojan 的密码泄露了怎么办?

Trojan 节点的密码通常就是你的账号凭证,一旦泄露,别人可能用你的订阅消耗流量。可以在机场用户中心重置订阅链接,机场一般会同步更换密码,之后在客户端重新导入即可。

延伸阅读:VLESS 是什么、IPLC 专线是什么、机场推荐。

延伸阅读

协议百科:更多问题

Shadowsocks(SS)是什么?SS 协议原理、加密方式与优缺点VLESS 是什么?VLESS + Reality 原理与优缺点VMess 是什么?VMess 协议原理、传输方式与优缺点Hysteria2 是什么?基于 QUIC 的 Hysteria2 协议原理与优缺点TUIC 协议是什么?TUIC 原理、特点及与 Hysteria2 的区别