VLESS 协议是什么?搭配 TLS、Vision、REALITY 的区别与客户端支持

更新于 约 4 分钟读完机场百科 · 协议知识

本文要点

  • VLESS 只负责验证身份和转发,加密交给外层的 TLS 或 REALITY 完成。
  • Vision 是流控方式,REALITY 是免域名证书的传输安全方案,两者可以叠加。
  • Xray、sing-box、mihomo 都支持 VLESS,原版 Clash 不支持。

VLESS 是什么

VLESS 是一种自身不做加密、只负责身份验证和流量转发的轻量级代理协议。它出自 V2Ray/Xray 社区,可以看作 VMess 的精简版:用一串 UUID 识别用户,协议头很短,额外开销小。

因为自己不加密,VLESS 必须运行在一层加密传输之上。所以你在节点名称或节点详情里看到的,通常不是单独的「VLESS」,而是「VLESS + TLS」「VLESS + REALITY」这样的组合。

三种常见组合

组合 含义 特点
VLESS + TLS 外层使用标准 TLS 加密,服务端需要域名和证书 外观上是普通 HTTPS,常搭配 WebSocket 或 gRPC 传输
VLESS + XTLS Vision 在 TLS 之上启用 Vision 流控 处理「TLS 里再套一层 TLS」的流量特征,并减少重复加密的开销
VLESS + REALITY 用 REALITY 取代传统的证书配置 服务端不需要自己的域名和证书,握手时对外呈现为某个真实网站

几个容易混淆的点:

  • Vision 是流控方式,不是独立协议。在节点参数里它体现为 flow 字段。
  • REALITY 是传输安全方案,作用位置相当于 TLS 那一层。
  • 两者不冲突,「VLESS + Vision + REALITY」是很常见的搭配。

优点和局限

优点

  • 协议头小、开销低,配合 Vision 时可以省掉一部分重复加密。
  • 组合灵活,同一个协议可以适配不同的传输方式。
  • 使用 REALITY 时不依赖自有域名和证书,省去了证书过期这类问题。

局限

  • 参数多。UUID、flow、SNI、公钥、short id 等字段只要错一项就连不上。好在通过订阅导入时这些都由机场下发,不需要手动填写。
  • 对客户端内核有要求。较旧的客户端可能不认识 Vision 或 REALITY,表现为节点缺失或全部超时。
  • 仍然基于 TCP。在丢包严重的线路上,它不会比其他基于 TCP 的协议更快。

哪些客户端支持

  • Xray:VLESS、Vision、REALITY 的原生实现,v2rayN、v2rayNG 默认使用它。
  • sing-box:支持 VLESS 以及 Vision、REALITY。
  • mihomo(Clash Meta):同样支持,Clash Verge Rev、Clash Meta for Android 等客户端可以直接使用。

需要注意的是,已经停止维护的原版 Clash 内核不支持 VLESS。如果导入订阅后发现少了一批节点,先确认自己用的是基于 mihomo 的客户端,再参考 订阅节点不显示 逐项排查。各平台可用的客户端见 客户端大全。

常见误解

「VLESS 是最新的,所以最快」:协议新旧和速度没有直接关系。速度主要由线路、带宽和晚高峰拥堵程度决定。

「REALITY 一定比 TLS 好」:两者各有适用场景,由机场根据自己的线路结构选择,用户不需要也无法替机场做决定。

「没有 VLESS 节点的机场不行」:很多专线机场只提供 Shadowsocks 或 Trojan,体验同样可以很好。

对普通用户来说,机场给什么就用什么,不必为了某个协议去换机场。几种协议放在一起的差异,见 不同协议对比。

常见问题

VLESS 不加密,是不是不安全?

VLESS 自身确实不加密,但它并不单独使用,而是运行在 TLS 或 REALITY 之上,加密由外层完成。机场下发的 VLESS 节点都带有外层加密,传输内容不是明文。

VLESS 和 VMess 有什么区别?

两者出自同一个社区。VMess 自带加密并且依赖设备时间校验;VLESS 去掉了内置加密和时间依赖,协议头更短,把安全性交给外层的 TLS 或 REALITY,是目前更常见的选择。

导入订阅后 VLESS 节点不显示怎么办?

多数是客户端内核不支持。已停止维护的原版 Clash 内核不认识 VLESS,请换用基于 mihomo、sing-box 或 Xray 内核的客户端,并把客户端更新到最新版后重新更新订阅。

相关协议知识文章

全部