VLESS 和 VMess 有什么区别:协议演进、Reality 与选择建议

VMess 到 VLESS 的演进解决了什么问题、为什么 VLESS 自身不加密反而更合理、Reality 在其中扮演什么角色,以及节点列表里出现两者时该怎么选。

VLESS 与 VMess 协议差异图解封面(占位图)

先理解 VMess 要解决的问题

VMess 是 V2Ray 系的原生协议,设计时把很多能力都放进了协议自身:内容加密、防重放、时间校验、用户标识。它是一个「自给自足」的协议。

代价有两个:

  • 协议头部复杂,每个数据包都要携带额外字段,开销更高;
  • 对时间敏感——VMess 的校验机制依赖客户端与服务器时间同步,偏差过大会直接握手失败。这也是「系统时间不准导致全部节点超时」这个经典问题的来源之一,处理方法见 DNS、TLS 和系统时间导致的连接问题

VLESS 做了什么改动

VLESS 的思路是做减法

能力VMessVLESS
内容加密协议自带交给外层 TLS
头部字段较多精简
时间校验依赖时间同步不再强依赖
传输组合相对固定可自由搭配传输层与伪装

核心判断是:既然外层已经有 TLS 在做加密,协议自身再加密一遍就是重复劳动。去掉这层重复,开销下降、组合自由度上升。

所以 VLESS 必须与 TLS 或 Reality 搭配——单独的 VLESS 不构成完整方案,这是设计前提而不是缺陷。

Reality 是什么

Reality 不是传输协议,而是 TLS 握手层面的伪装方案,通常与 VLESS 组合使用。

它的思路比 Trojan 更进一步:Trojan 用自己的域名和证书装成一个正常网站,Reality 则让握手过程借用一个真实存在的第三方网站的证书特征。主动探测时看到的是那个真实网站的响应,而不是一台配置了代理的服务器。Trojan 的基础思路见 Trojan 协议原理

节点名标注 VLESS+Reality 的机场,通常在技术跟进上比较积极——这可以作为判断服务商技术水位的一个侧面信号,但不能替代对线路质量的实测。

节点列表里该怎么选

  1. 优先用机场默认推荐的那一组,服务商比你更清楚自己的节点配置;
  2. 网络环境对识别较严格时,优先试标注 Reality 的节点;
  3. 客户端提示不支持时,先升级客户端,再考虑改用 Shadowsocks 或 Trojan 节点兜底,支持情况见客户端兼容性总表
  4. 链路丢包严重时不要在这两个之间纠结——它们都基于 TCP,抗弱网能力接近,应该换 UDP 系协议,见 Hysteria 2 适合什么网络环境

一句话总结

VMess 是「什么都自己做」的老设计,VLESS 是「只做该做的事、其余交给 TLS」的新设计。对普通用户来说,两者的实际体验差距远小于线路差距——协议全景见主流代理协议入门

本文更新于 2026年8月4日。信息最后核查于 2026年8月4日。

常见问题

VLESS 和 VMess 哪个更好?
VLESS 是更新的设计,开销更小、组合更灵活,目前是主流方向。但「更好」要看具体节点的线路质量——协议只决定开销与伪装方式,决定体验上限的仍然是线路。
VLESS 不加密安全吗?
VLESS 本身确实不做内容加密,它依赖外层的 TLS 提供加密。正确配置下安全性没有问题;这也意味着它必须与 TLS 或 Reality 搭配使用,裸跑 VLESS 是配置错误。
Reality 是一种协议吗?
不是独立的传输协议,而是 TLS 握手层面的一种伪装方案,通常与 VLESS 搭配。它让握手过程借用真实网站的证书特征,从而更难被主动探测识别。
节点名里的 VLESS+Reality 是什么意思?
表示这个节点使用 VLESS 协议并启用了 Reality 伪装。这类节点在识别较严格的网络下通常更稳,但需要客户端支持——较老版本的客户端可能无法连接。
客户端提示不支持 VLESS 怎么办?
升级客户端到较新版本,或改用该机场提供的 Shadowsocks、Trojan 节点作为替代。协议支持取决于客户端内核版本,与机场无关。

参考资料

  • 本站协议总览(四种主流协议的横向对照见 /knowledge/proxy-protocols-overview/)