VLESSRealityVMess协议科普

什么是 VLESS Reality?原理图解及与 VMess + WS + TLS 对比

发布于 · 约 8 分钟阅读

刚接触代理配置时,最让人困惑的往往是一串串缩写:VMess、VLESS、WS、TLS、Reality……它们到底是什么关系? VLESS Reality 为什么最近被频繁提起?本文不讲复杂的密码学,用尽量直白的方式说清楚 Reality 的原理, 并与目前使用最广泛的 VMess + WebSocket + TLS 组合做一个对比。

先搞懂三层概念

一个节点的「协议」其实由三层组成。可以把它想象成寄一封信:

  • 代理协议(信的内容格式):VMess、VLESS、Trojan、Shadowsocks 等, 规定客户端如何告诉服务器「我是谁、我要访问哪里」。
  • 传输方式(运输渠道):直接走 TCP,或者包装成 WebSocket(WS)、gRPC 等, 决定数据以什么形式在网络上传输。
  • 安全层(信封):TLS 或 Reality,负责加密并决定这条连接在外界看来像什么。

所以「VLESS + Reality」和「VMess + WS + TLS」都是三层的组合,只是每一层的选择不同。

VMess 与 VLESS 有什么不同

VMess

VMess 是 V2Ray 项目最早设计的协议,自带加密与身份认证。用户以 UUID 作为身份凭证,认证时会校验时间戳, 因此客户端与服务器的系统时间必须基本一致,否则会出现连接失败。它历史悠久、客户端支持最广泛。

VLESS

VLESS 是更轻量的继任者,去掉了协议自身的加密,把安全性完全交给外层的 TLS 或 Reality 处理,从而减少重复加密的开销, 也不再依赖时间校验。VLESS 必须搭配安全层使用,单独使用是不安全的。

Reality 的原理:借一张「真实网站的脸」

传统的 TLS 方案需要你拥有一个域名,并为它申请证书,外界看到的是「有人在访问这个域名」。Reality 换了一种思路:

  1. 服务端配置一个真实存在的外部网站作为「伪装目标」(即 dest 与 serverNames)。
  2. 客户端发起连接时,使用这个外部网站的域名作为 SNI,并模拟主流浏览器的 TLS 指纹(client-fingerprint), 看起来就像一次普通的网站访问。
  3. 客户端在握手中携带只有它才能生成的认证信息(基于服务端公钥和 short-id)。 服务端验证通过,就把这条连接当作代理连接处理。
  4. 如果验证不通过,比如有人直接访问这个端口,服务端会把连接原样转发给真实的外部网站,访问者看到的就是那个网站的正常内容。

正因如此,Reality 不需要自备域名和证书,对外表现也非常接近普通的网站访问。 它常与 xtls-rprx-vision 流控搭配使用,以减少在加密连接中再套一层加密所产生的特征与开销。

VMess + WebSocket + TLS 是怎么工作的

这是一套非常经典的组合:VMess 负责身份认证,WebSocket 把代理数据包装成网页常用的长连接,TLS 再在外层加密, 整体看起来是一条标准的 HTTPS + WebSocket 连接。它的优点是兼容性极好: 几乎所有客户端都支持,还可以通过 Nginx 等反向代理或 CDN 转发,部署灵活。代价是需要处理证书,并且要注意系统时间同步。

Reality 与 VMess + WS + TLS 对比

对比项VLESS + RealityVMess + WS + TLS
需要自备域名 / 证书不需要需要证书(正规证书或自签证书)
可经过 CDN / 反向代理不可以可以,WebSocket 天然适合
客户端兼容性需要较新的内核(Mihomo、sing-box、Xray)几乎所有主流客户端都支持
配置参数较多:公钥、short-id、servername、指纹、flow较少:UUID、端口、WS 路径、TLS
对系统时间敏感一般不敏感敏感,时间偏差大会认证失败
对外表现接近访问一个真实的普通网站标准的 HTTPS + WebSocket 连接
技术成熟度较新,仍在持续演进成熟稳定,资料丰富

普通用户该怎么选

  • 使用订阅服务:协议由服务商选定,你需要关心的是节点是否稳定、客户端能否直接导入。 无论哪种协议,订阅都会自动生成完整配置,不需要手动理解每个参数。
  • 自建节点、没有域名:Reality 省去了域名与证书,是很受欢迎的选择。 不过参数较多,配错时客户端通常只报 EOF,可参考 Clash 连接失败排查指南中的 Reality 核对清单。
  • 需要经过反向代理或 CDN:选择 WebSocket 类传输,Reality 无法经过 CDN。
  • 需要照顾多种设备和客户端:VMess + WS + TLS 的兼容性优势明显,旧版客户端也能使用。

supernet.day 为什么选择 VMess + WS + TLS

supernet.day 的用户分布在 Windows、macOS、Linux、Android 和 iOS 等多个平台,使用的客户端也各不相同。 我们目前采用 VMess + WebSocket + TLS,主要考虑的是 兼容性与稳定性:Clash Verge Rev、Clash Meta for Android、Shadowrocket 都能直接导入订阅,无需额外设置。唯一需要注意的是保持系统自动时间同步,避免因时间偏差导致认证失败。

如果你还在纠结用哪个客户端,可以参考 Clash vs sing-box 选型对比。

一句话总结:Reality 省去了域名与证书,对外更像普通网站访问;VMess + WS + TLS 胜在成熟与兼容。对订阅用户而言, 协议差异远没有线路质量和客户端是否匹配来得重要。

常见问题 FAQ

VLESS Reality 一定比 VMess 更快吗?

不一定。协议本身的开销差异在日常使用中很小,实际速度主要取决于线路质量、服务器负载和网络环境。Reality 的优势更多在于无需自备域名和证书、对外表现更接近普通网站访问,而不是绝对速度。

Reality 需要自己买域名和证书吗?

不需要,这正是 Reality 的特点之一。服务端借用一个真实外部网站的 TLS 握手,客户端只需要配置公钥、short-id 和对应的 servername 即可。

为什么 VMess 对系统时间那么敏感?

VMess 的身份认证包含时间戳校验,客户端与服务端时间相差过大(约 90 秒以上)就会认证失败,常见表现是连接后立刻报 EOF。开启系统的自动时间同步即可避免。

Reality 节点能套 CDN 吗?

不能。Reality 依赖客户端与服务器直接完成特殊的 TLS 握手,中间经过 CDN 会破坏这一过程。需要通过 CDN 或反向代理转发的场景,通常选择 WebSocket 等传输方式。

supernet.day 使用的是什么协议?

supernet.day 目前使用 VMess + WebSocket + TLS,并以 Clash(Mihomo)格式提供订阅,Clash Verge Rev、Clash Meta for Android 与 Shadowrocket 均可直接导入使用,协议参数都已预先配置好。

还没有订阅?

注册即送 1 天 / 1GB 高速流量体验,满意后再升级套餐

各平台图文安装教程:Windows · macOS · Linux · iOS · Android

← 返回教程列表