VMess 和 VLESS 有什么区别?完整对比

VMess 和 VLESS 完整对比封面
VMess 和 VLESS 完整对比封面

VMess 与 VLESS 都是 V2Ray/Xray 家族的代理协议,最大的区别是:VMess 自带一套加密与身份验证、设计较重,VLESS 把加密交给外层 TLS、协议本身更轻。

快速结论:机场若同时给了两者,日常优先用 VLESS——它开销更低,而且常常搭配 REALITY 或 XTLS Vision,抗封锁表现更好;只有当你的客户端较老、只认 VMess 时,才退回用 VMess。对普通用户而言,二者都由机场配置好、导入订阅即可使用,纯协议的性能差距在日常刷网页、看视频时几乎感觉不到,真正拉开体验的是外层用的是普通 TLS 还是 REALITY。想系统了解两个协议各自的来龙去脉,可分别看VMess 协议详解与VLESS 协议详解。

一张表看懂核心区别

对比维度VMessVLESS
定位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 的取舍。