VMess 和 VLESS 有什么区别?完整对比
VMess 与 VLESS 都是 V2Ray/Xray 家族的代理协议,最大的区别是:VMess 自带一套加密与身份验证、设计较重,VLESS 把加密交给外层 TLS、协议本身更轻。
快速结论:机场若同时给了两者,日常优先用 VLESS——它开销更低,而且常常搭配 REALITY 或 XTLS Vision,抗封锁表现更好;只有当你的客户端较老、只认 VMess 时,才退回用 VMess。对普通用户而言,二者都由机场配置好、导入订阅即可使用,纯协议的性能差距在日常刷网页、看视频时几乎感觉不到,真正拉开体验的是外层用的是普通 TLS 还是 REALITY。想系统了解两个协议各自的来龙去脉,可分别看VMess 协议详解与VLESS 协议详解。
一张表看懂核心区别
| 对比维度 | VMess | VLESS |
|---|---|---|
| 定位 | V2Ray 原生协议,功能齐全但设计偏重 | VMess 的精简继任者,主打轻量 |
| 身份验证 | UUID 加时间戳,对系统时间敏感 | 仅 UUID,无状态、不校验时间 |
| 加密机制 | 协议自带加密(现代版走 AEAD) | 本身不加密,明文承载、靠外层保护 |
| 是否依赖 TLS | 可裸跑,但实践上仍建议叠加 TLS | 几乎必须叠加 TLS 或 REALITY |
| 传输方式 | 支持 TCP / WebSocket / gRPC 等 | 同样支持 WS / gRPC,常配 XTLS Vision |
| 客户端兼容性 | 生态老牌,几乎所有客户端都支持 | 需较新内核(Xray / sing-box / mihomo) |
| 配置复杂度 | 字段较多(alterId、security 等) | 字段少、配置直观 |
| 适合人群 | 老客户端、遗留订阅的兼容场景 | 追求低开销与强抗封锁的主流用户 |
逐项拆解
加密机制:自己加密 vs 交给 TLS
这是两者最本质的差异。VMess 在协议内部就实现了一层加密与完整性校验,现代实现统一采用 AEAD(如 aes-128-gcm、chacha20-poly1305),历史上依赖 MD5 的旧式验证已被淘汰。也就是说,即便不套外层 TLS,VMess 的负载本身也是加密的。
VLESS 走的是另一条路:协议层”什么都不加密”(encryption 字段就是 none),只负责标识身份、转发数据,把机密性与完整性完全交给外层的 TLS 加密层 或 REALITY。这样做的好处是去掉了一层冗余——反正外面已经有 TLS 了,里面再加一遍纯属浪费 CPU;坏处是 VLESS 绝不能”裸奔”,一旦缺了外层保护,流量就是明文。
身份验证与”时间敏感”
VMess 的握手里带时间戳,服务器会校验客户端时间是否落在允许窗口内(通常前后约 90 秒)。这带来一个常见坑:设备系统时间不准(没开自动对时),VMess 就会连不上、报验证失败。字段 alterId 早期用于生成额外 ID 抗重放,如今新版本已统一设为 0 并改用 AEAD 方案,老订阅里非零的 alterId 属于历史遗留。
VLESS 是无状态设计,只用 UUID 认证、不看时间戳,因此不存在”时间对不上就连不上”的问题,握手也更简单。
是否依赖 TLS 与抗封锁
正因为 VLESS 本身不加密,它几乎总是和外层安全层绑定出现。最常见的两种组合:VLESS 加 TLS(配合 WS / gRPC 伪装成正常 HTTPS),以及 VLESS 加 REALITY。REALITY 是当前抗识别能力的天花板之一:它无需你自备域名和证书,握手阶段直接借用某个真实大站的 TLS 指纹,让审查者难以从特征上识别。VMess 也能叠加 TLS,但缺少 REALITY 这类新特性,伪装上限更低。
客户端兼容性与开销
VMess 出道早、生态最广,几乎所有客户端和内核都认;VLESS 相对新,需要较新的 Xray、sing-box 或 mihomo 内核,非常老的客户端可能不支持。开销方面,VMess 多做一层加密与时间校验,CPU 占用和握手复杂度略高;VLESS 省掉这层,在弱设备(老手机、路由器)上更省电、连接更利索。
别把”传输方式”和”协议”搞混
很多人比较 VMess 和 VLESS 时会问”哪个能配 WebSocket""哪个能走 gRPC”,其实这是把不同层的东西混在了一起。“用哪个代理协议”(VMess 还是 VLESS)、“数据怎么包装传输”(TCP / WebSocket / gRPC)、“外层要不要加密”(是否叠 TLS)是三件独立的事。VMess 和 VLESS 都能搭配 WS 或 gRPC,也都能叠 TLS——传输方式并不是二者的区别所在,真正的分野始终在”协议本身是否自带加密与时间校验”。
VLESS 的杀手锏:XTLS Vision 与省掉双重加密
VLESS 之所以在大流量场景更省资源,还有一个 VMess 没有的机制——XTLS Vision 流控。设想你用代理去访问一个本身就是 HTTPS 的网站:普通做法会把这条 HTTPS 连接再包进一层外层 TLS,等于加密两次(业内俗称”TLS in TLS”),既费 CPU 又增加延迟。Vision 能识别这种情况,让内层的 TLS 数据基本透传、不再重复加解密,从而降低开销、提高吞吐。VMess 没有对应能力。这也是为什么在高并发、大带宽下,VLESS + XTLS Vision 往往比 VMess 更从容。
选择建议
- 日常主力:选
VLESS,尤其是 VLESS 加 REALITY 或 VLESS 加 XTLS Vision 的组合,轻量又抗封。 - 兼容老环境:客户端太老只认 VMess,或机场只发 VMess 订阅时,用 VMess 加 TLS 也完全够用,别纠结。
- 别为协议换机场:主流机场通常两者都给,你要做的只是在客户端里选一条 VLESS 线路。若还拿不准整体如何取舍,读如何根据场景选择代理协议。
下一步:想把对比范围再扩大,可看Trojan 和 VLESS 的区别理解”必须证书”与”可用 REALITY”的差异,或用五大主流协议横向对比一次看全 SS、VMess、VLESS、Trojan、Hysteria2 的取舍。