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 类客户端取决于它使用的内核。
每个客户端到底支持哪一项,查 协议 × 客户端支持矩阵,每格附官方出处,查不到就是“资料待核实”。
怎么自己确认节点和客户端对得上
- 用 节点解析工具 把节点链接拆开,看协议名、传输方式、安全类型。
- 在客户端里导入后,核对地址、端口、SNI 与链接里是否一致。
- 若连接失败,先查系统时间和证书问题,对照 证书错误与系统时间不对怎么办。
- 再按 节点超时怎么办 的顺序往下排查。
节点链接各段含义的完整说明见 节点链接怎么读;Trojan 的填写要点见 Trojan 节点配置教程。
弄清 VLESS 和 Trojan 的区别后的选择与下一步
不必在协议名上站队。按下面的顺序走:
| 步骤 | 要做的事 |
|---|---|
| 1 | 看订阅里提供了哪几种节点 |
| 2 | 看自己的客户端,查矩阵确认两种协议是否都支持 |
| 3 | 两种都支持,就各挑一个常用节点,在自己的网络里试 |
| 4 | 只有一种支持,就用那一种,或换更合适的客户端 |
想看更系统的倒推流程,读 代理协议怎么选;想了解 VLESS 和另一个常见协议的区别,读 VLESS 与 VMess 的区别;想了解 Trojan 与老协议的对比,读 Shadowsocks 与 Trojan 的区别。
这篇没有覆盖的
- 梯子岛没有两种协议在任何网络下的速度或稳定性数据,本文不下"哪个更安全、更不容易被识别"的结论。
- 只讲协议在官方文档里的设计与限制,不涉及服务端部署,也不提供绕过任何限制的操作。
- 各客户端对两种协议的具体字段支持程度不一,写节点之前请以所用客户端的官方说明为准。
本文引用的官方来源
- Xray 文档:VLESS(xtls.github.io)
- Xray 文档:Trojan(xtls.github.io)
- V2Fly:Trojan 配置(中文)(www.v2fly.org)
- Trojan 协议说明(trojan-gfw.github.io)
- 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 的官方文档里没有这个概念,不要把两个协议的参数互相套用。
订阅里两种节点都有,该删掉哪种?
不需要删。保留两种,在你常用的网络下各试用一段时间,自己的体验才是依据。若客户端对其中一种支持有限,隐藏对应节点即可,不必从订阅里修改。
接着读
- 协议 · VLESS 协议是什么?VLESS 节点与 Xray 的关系
- 协议 · Trojan 协议是什么?Trojan 节点的原理与客户端支持
- 对比 · VLESS 与 VMess 的区别:该用哪个协议
- 对比 · Shadowsocks 与 Trojan 的区别:老协议与新协议
- 协议 · Reality 协议是什么?VLESS + Reality 的原理与客户端
- 协议 · 代理协议怎么选?按场景与客户端倒推,不按名气选