VLESS 协议是什么:为什么它本身不加密
VLESS 是只负责用户认证和传递目标地址的轻量代理协议,协议本身不加密,机密性交给外层的 TLS 或 REALITY。本文拆解 VLESS 请求头的字段,说明不套外层时会暴露什么,以及读机场资料里的“VLESS”时还缺哪些信息。
VLESS 不加密是分工,不是遗漏
VLESS 是一种只做两件事的代理协议:用 UUID 证明你是合法用户,把你要访问的目标地址告诉服务器。它不对数据做任何加密,机密性和完整性交给外层的 TLS 或 REALITY 负责。所以判断一个 VLESS 节点是否安全,要看它外面套了什么,而不是看 VLESS 这个名字本身。
这种分工来自 V2Ray 与 Xray 社区对 VMess 的反思:当 VMess 运行在 TLS 里面时,数据会被加密两次,既浪费计算资源,也让协议更复杂。VLESS 把协议层瘦身到最小,让成熟的 TLS 去做它擅长的事。本文属于 代理协议二级专题,一级专题中的概览见 代理协议:VLESS、Trojan 与 Shadowsocks。
一个 VLESS 请求头里有什么
客户端与服务器建立连接后,首先发送一个很短的请求头,随后才是真正的数据。按协议说明,请求头大致包含以下字段:
| 字段 | 作用 | 说明 |
|---|---|---|
| 版本号 | 标明协议版本 | 目前常见实现固定为 0 |
| UUID | 用户认证 | 16 字节,相当于这个节点的“密码” |
| 附加信息 | 携带扩展参数 | 例如流控模式,可以为空 |
| 指令 | 说明要做什么 | TCP 连接、UDP 转发或多路复用 |
| 端口与地址 | 目标在哪里 | 地址可以是 IPv4、IPv6 或域名 |
服务器检查 UUID 是否在允许列表中,通过后回复一个同样很短的响应头,然后双方开始原样转发数据。整个过程中没有密钥协商,也没有对数据加密的步骤。这就是节点配置里常见“加密方式:none”这一项的来源:它不是漏填,而是 VLESS 规定必须这样写,提醒使用者协议层不提供加密。
为什么把加密交给外层
把加密留给外层,至少有三点考虑:
- 避免重复加密。 外层 TLS 已经提供了经过长期检验的加密与完整性校验,协议层再加密一次,收益很小,开销却实实在在。
- 外观交给标准协议。 外层使用标准 TLS 时,旁观者看到的是一次普通的加密握手和加密流量,协议本身的结构被包在里面。
- 协议更容易实现和审查。 字段越少,不同客户端之间的实现差异越小,出错的可能也越低。
代价是:VLESS 节点的安全性完全取决于外层配置是否正确。外层是 TLS 时,需要服务器有可用的域名证书;外层是 REALITY 时,需要客户端填对公钥等参数。两种方案的原理分别见 REALITY 如何在没有证书时完成握手 和 TLS、SNI 与证书校验导致的连接失败。
不套外层的 VLESS 会暴露什么
如果 VLESS 直接跑在明文 TCP 上,网络路径上的任何一方都能看到请求头的全部内容。按字段对照:
| 被看到的内容 | 后果 |
|---|---|
| UUID | 等同于泄露账号凭据,他人可以冒用 |
| 目标地址和端口 | 你访问了哪个网站一目了然 |
| 目标网站本身是 HTTPS | 网页内容仍由网站自己的 TLS 保护 |
| 目标网站是明文 HTTP | 网页内容同样会被看到 |
因此,常规的 VLESS 节点几乎都搭配 TLS 或 REALITY 使用。少数场景下,机场可能在专线或内部链路中使用不带外层的 VLESS,这属于运营方自己的部署选择,资料一般不会说明,以各品牌说明为准。作为用户,能做的是在客户端里查看节点的“传输层安全”一项是否为 TLS 或 REALITY。
流控与 Vision:减少“TLS 套 TLS”
当你通过 VLESS + TLS 访问一个 HTTPS 网站时,会出现两层 TLS:外层是你和节点之间的,内层是你和网站之间的。这种嵌套在流量形态上有一定特征,也带来额外开销。Xray 社区为此设计了流控模式,常见写法是 Vision:在内层 TLS 握手完成后,识别出已经加密的数据,减少外层的重复处理,使流量形态更接近普通的单层 TLS。
流控是写在 VLESS 附加信息里的扩展参数,只在特定组合下生效,通常要求传输方式是原始 TCP,安全层是 TLS 或 REALITY。客户端如果不认识这个参数,就可能无法连接。这也是“同样是 VLESS 节点,有的客户端能用,有的不行”的常见原因之一。
近年 Xray 社区还为 VLESS 增加了可选的协议层加密方案,但各客户端支持程度不一。机场资料里的“VLESS”目前一般仍指依赖外层安全的常见形态,具体以各品牌说明为准。
读机场资料里的“VLESS”时还缺什么
本站整理的 17 个品牌资料中,有 12 个写明协议为 VLESS,5 个协议待核实。这 12 份资料都只写到协议名这一层,没有说明安全层、传输方式和流控参数。一个 VLESS 节点能否在你的设备上使用,至少还取决于三项信息:
- 安全层是 TLS 还是 REALITY,或者没有;
- 传输方式是原始 TCP、WebSocket、gRPC 还是其他;
- 是否启用了流控,以及启用的是哪一种。
这些信息通常要在导入订阅后,才能在客户端的节点详情里看到。如果你的客户端对某种组合支持不完整,购买前可以向客服确认订阅下发的具体组合。客户端怎么选、参数怎么核对,属于客户端操作,见 桌面端客户端:Windows 与 macOS 以及 资料写明 VLESS 的机场在电脑上用什么客户端。
另外要注意,资料写 VLESS 并不代表订阅里只有 VLESS 节点。本站测速截图中多数节点类型显示为 Shadowsocks,这一差异的分析见 测速截图协议与资料协议不一致的核对方法。
边界与提醒
本文只解释 VLESS 的协议设计,不涉及服务器部署,也不比较哪个品牌的 VLESS 配置更好。协议名称只说明数据怎样封装,不说明线路类型、速度或 AI、流媒体可用性;本站对 17 个品牌均未做解锁实测。和 VMess 的系统比较见 VMess 与 VLESS 的时间校验与加密层差别。
请遵守所在地法律法规与相关平台的服务条款,不要把代理工具用于违法用途。
常见问题
VLESS 本身不加密,是不是说明它不安全?
不能这么理解。VLESS 的设计是把加密交给外层的 TLS 或 REALITY,自身只做认证和寻址,避免重复加密。真正需要留意的是节点是否确实套了外层安全层;没有外层时,用户标识和目标地址会以明文形式出现在网络上。
机场资料只写 VLESS,能看出用的是 TLS 还是 REALITY 吗?
看不出来。VLESS 只是代理协议这一层,安全层、传输方式和流控参数都要看订阅里实际下发的节点配置。本站整理的 12 个写明 VLESS 的品牌资料,都没有进一步说明这些参数。
VLESS 和 VMess 是什么关系?
VLESS 可以看作 VMess 的精简后继:去掉了协议层加密和对系统时间的依赖,只保留认证与寻址。两者的详细差别见本专题的 VMess 与 VLESS 对比文章。
来源与更新
品牌字段来自本站品牌数据文件(整理自 2026-09-04 品牌清单,Vendor Data,官网待核实);测速截图为 2026-10-18 复核后发布的单次 Measured Data;AI 与流媒体均为 Not Tested。发布 2026-10-18,最近更新 2026-10-18。本页不承诺任何平台的收录、排名或引用。