VLESS 与 Trojan 的区别:设计思路与客户端支持

先说结论

Trojan 协议的思路是先完成一次正常 TLS 握手,再在里面发密码哈希和请求;VLESS 则是无状态的轻量协议,外层可以是 TLS 或 Reality,并支持流控。两者都依赖外层 TLS,能否使用主要看节点提供方和客户端内核。

VLESS 和 Trojan 的区别,要从两者各自想解决的问题说起:Trojan 协议主张“别搞新花样,直接披上一次正常的 TLS 外衣”,VLESS 主张“协议尽量轻,外层怎么包你来选”。读完这篇,你应该能看懂节点链接里这两个协议名背后分别意味着什么,并知道自己的客户端该查哪份文档。

VLESS 和 Trojan 的区别:两种设计思路,一张表对齐

维度 Trojan 协议 VLESS
基本思路 把代理流量放进 TLS,模仿最常见的服务 无状态的轻量传输协议,外层安全另行配置
认证 密码,传输时用哈希 UUID
外层要求 必须基于 TLS 须配 TLS 或 REALITY,特定条件例外
协议自带的保护 只做认证,数据保护依赖外层 TLS 默认不加密,保护取决于外层
额外选项 回落到预设服务、Mux Vision 流控、VLESS Encryption、reverse
原始项目 trojan-gfw 的 Trojan Xray 的 XTLS 系

看到“依赖外层 TLS”这几个字,不必担心两者天差地别:它们在保护方式上的共同点比差异多,真正的差别在于首包内容、异常处理和可选的增强项。各自的完整介绍在 Trojan 协议 与 VLESS 协议。

首包与回落:Trojan 的“伪装服务”设计

Trojan 的官方协议说明写得很具体。客户端先完成一次 TLS 握手,之后第一个数据包由几段拼成:密码经 SHA224 计算后的十六进制串、换行、一段类似 SOCKS5 的请求(CONNECT 或 UDP ASSOCIATE)、换行,再接上载荷。

两点值得知道:

  • 回落:如果服务端收到的连接不合规,会把它转交给预设的本地服务(默认是本机 80 端口),对外表现得与该服务一致。V2Fly 文档也提到 Trojan 入站支持 fallbacks。
  • 首包带载荷:文档称这样可以避免长度模式探测,并可能减少发包数量。

TCP 和 UDP 在 Trojan 里都能转发,UDP 靠的是 UDP ASSOCIATE。这些是协议设计,对你在客户端里的操作基本透明。

vless和trojan 在外层与流控上的分叉

VLESS 的设计重心不在首包长相,而在“外层可选”和“流控”。

  • 外层必须是 TLS 或 REALITY;文档允许的例外是私有地址上的可信链路,或启用了 VLESS Encryption。
  • flow 填 xtls-rprx-vision 才启用 XTLS 流控,只能用于 TCP 加 TLS 或 Reality,或启用 VLESS Encryption 的场景。
  • xtls-rprx-vision 会拦截发往 443 端口的 UDP,也就是 QUIC。程序强制使用 QUIC 时需改用 xtls-rprx-vision-udp443。

Trojan 一侧没有这些概念,却有自己必须面对的问题:Xray 文档写明,公网环境下 Trojan 还需要 Mux,否则当内层载荷本身是 TLS 时,会形成 TLS in TLS,容易被识别。这是文档对该协议组合的明确提醒,读 多路复用 Mux 术语 能补上背景。

所以同样是“披上 TLS”,Trojan 偏向让服务端伪装成一个正常的网站,VLESS 偏向让你在多种外层里选。哪个贴合你的需要,要看节点是怎么发给你的。

trojan vless哪个好:客户端支持是第一道筛

内核或项目 Trojan 协议 VLESS
Xray-core 支持 支持
sing-box 支持 支持
Mihomo 支持 支持
V2Fly v2ray-core 支持 文档标注已弃用
trojan-gfw 原项目 支持 不适用

V2Fly 那一格的“已弃用”只指它自己的实现,不代表协议本身消失。Mihomo 的文档里,Trojan 的 network 支持 ws 与 grpc;VLESS 的 network 支持 ws、http、h2、grpc、xhttp,并带有 reality-opts 与 encryption 字段。这类细节差异,最后落到你的客户端上:Clash 类客户端取决于内置的 Mihomo,V2Ray 类客户端取决于它使用的内核。

每个客户端到底支持哪一项,查 协议 × 客户端支持矩阵,每格附官方出处,查不到就是“资料待核实”。

怎么自己确认节点和客户端对得上

  1. 用 节点解析工具 把节点链接拆开,看协议名、传输方式、安全类型。
  2. 在客户端里导入后,核对地址、端口、SNI 与链接里是否一致。
  3. 若连接失败,先查系统时间和证书问题,对照 证书错误与系统时间不对怎么办。
  4. 再按 节点超时怎么办 的顺序往下排查。

节点链接各段含义的完整说明见 节点链接怎么读;Trojan 的填写要点见 Trojan 节点配置教程。

弄清 VLESS 和 Trojan 的区别后的选择与下一步

不必在协议名上站队。按下面的顺序走:

步骤 要做的事
1 看订阅里提供了哪几种节点
2 看自己的客户端,查矩阵确认两种协议是否都支持
3 两种都支持,就各挑一个常用节点,在自己的网络里试
4 只有一种支持,就用那一种,或换更合适的客户端

想看更系统的倒推流程,读 代理协议怎么选;想了解 VLESS 和另一个常见协议的区别,读 VLESS 与 VMess 的区别;想了解 Trojan 与老协议的对比,读 Shadowsocks 与 Trojan 的区别。

这篇没有覆盖的

  • 梯子岛没有两种协议在任何网络下的速度或稳定性数据,本文不下"哪个更安全、更不容易被识别"的结论。
  • 只讲协议在官方文档里的设计与限制,不涉及服务端部署,也不提供绕过任何限制的操作。
  • 各客户端对两种协议的具体字段支持程度不一,写节点之前请以所用客户端的官方说明为准。

本文引用的官方来源

  1. Xray 文档:VLESS(xtls.github.io)
  2. Xray 文档:Trojan(xtls.github.io)
  3. V2Fly:Trojan 配置(中文)(www.v2fly.org)
  4. Trojan 协议说明(trojan-gfw.github.io)
  5. Mihomo 文档:Trojan(wiki.metacubex.one)

以上链接均为官方页面,梯子岛在 2026-10-09 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。

VLESS 和 Trojan 的区别常见问题

Trojan 和 VLESS 哪个更不容易被识别?

官方文档并没有这样的比较,梯子岛也没有相关数据,无法给出结论。能确认的是两者都需要外层 TLS 或类似的传输安全,实际表现取决于服务端怎么配、网络环境怎样。请不要凭网络上的传言下判断。

Trojan 节点为什么总要求有域名和证书?

官方协议说明写明 Trojan 基于 TLS,证书由使用者自己负责有效。对普通订阅用户来说,这些由节点提供方在服务端处理,你只需要在客户端里填对地址、端口、密码和 SNI 一类字段。

我的客户端只支持其中一种怎么办?

先看节点提供方是否同时给了两种协议的节点。如果只给了你的客户端不支持的那种,要么换支持它的客户端,要么向提供方要另一种格式。换客户端前,先查站内客户端档案与协议矩阵,避免换了还不行。

Mux 对 Trojan 节点有什么作用?

Xray 文档指出,公网环境下的 Trojan 还需要 Mux,否则当内层载荷本身是 TLS 时,会形成 TLS in TLS,容易被识别。这是服务端与客户端共同的配置项,普通用户通常不用自己改,了解原因即可。

VLESS 的 Vision 流控 Trojan 也有吗?

没有对应项。流控 xtls-rprx-vision 是 VLESS 在 Xray 文档里的字段,只用于 TCP 加 TLS 或 Reality 等条件。Trojan 的官方文档里没有这个概念,不要把两个协议的参数互相套用。

订阅里两种节点都有,该删掉哪种?

不需要删。保留两种,在你常用的网络下各试用一段时间,自己的体验才是依据。若客户端对其中一种支持有限,隐藏对应节点即可,不必从订阅里修改。

接着读

文中出现的术语

接下来去哪儿?

找官方入口去网址导航,想核对仓库和版本看GitHub 项目导航;需要现成的机场,机场目录收了 28 家的价格与线路资料,性价比机场、便宜机场、VPN 机场分别有专项页。