VLESS REALITY 是一台藏在别的网站 TLS 握手背后的 VLESS 代理服务器。VLESS 是 Xray 项目的一种轻量代理协议,REALITY 则取代了它通常使用的 TLS 层:服务器会像一个真实、无关的网站那样作出应答,因此不需要自己的域名和证书,只有持有其公钥和 Short ID 的客户端才能连到代理。它通常与 Vision 流控(xtls-rprx-vision)搭配使用。

本文逐一介绍这几个组成部分、它们如何配合,以及各自的局限。

VLESS 是什么?

VLESS 是一种无状态的代理协议。每个连接都以一段简短的头部开始:版本号、用户 ID(一个 UUID)、命令(TCP 或 UDP)和目标地址,之后就是你的数据。

协议内容基本就这么多。VLESS 没有内置加密。它的前身 VMess 会自己加密每个数据包;VLESS 则把这件事交给下层,通常是 TLS 或 REALITY。不重复加密,手机和服务器都能省下一些开销。

VLESS 于 2020 年在 V2Ray 社区提出,如今在 Xray 中持续开发,sing-box 和 Mihomo 也支持它。想并排比较这两种协议,请阅读 VMess 和 VLESS 的区别。

传输方式

VLESS 可以直接跑在 TCP 上,也可以放进一种承载连接的传输方式里:

  • WebSocket、HTTP Upgrade 和 gRPC,常用来经过 CDN。
  • XHTTP(原名 SplitHTTP),Xray 基于 HTTP 的传输方式,在 Xray 中取代了 HTTP/2 和 QUIC。

REALITY 可用于无传输方式、gRPC 或 XHTTP。

XTLS Vision 是什么?

当你通过 TLS 代理打开一个 HTTPS 网站时,浏览器的 TLS 连接会在代理的 TLS 连接里传输。这种“TLS 套 TLS”有可识别的形态:内层握手的大小和时序会透过外层加密显现出来。

Vision 流控(xtls-rprx-vision)正是为此而设计。它会填充内层 TLS 握手的最初几个数据包,让它们的大小不那么容易暴露。内层连接加密之后,Vision 可以直接放行其数据,不再加密第二遍。

Vision 要求 VLESS 不使用传输方式,并搭配 TLS 或 REALITY。它的一个变体 xtls-rprx-vision-udp443 还允许发往 443 端口的 UDP(QUIC)。旧的 XTLS 流控,如 xtls-rprx-direct,已从 Xray 中移除。

REALITY 是什么?

普通的 TLS 代理需要域名和证书。配置起来麻烦,而且一台域名和网站内容都很单薄的服务器可能会显得很突兀。

REALITY 于 2023 年加入 Xray,思路完全不同。服务器会配置一个目标(target),也就是它借用的一个真实网站,比如 www.example.com。然后:

  1. 你的客户端以目标网站的域名作为 SNI 发起 TLS 1.3 握手,握手的形态与真实浏览器一致。
  2. 握手中藏着一个值,只有持有服务器公钥和有效 Short ID 的客户端才能生成。
  3. 如果这个值校验通过,服务器会自己完成握手,你的客户端则用同一个共享密钥验证服务器。VLESS 连接就在其中运行。
  4. 如果校验不通过,比如有人在探测这台服务器,服务器会把连接转发给真正的目标网站。访问者拿到的是真实网站和它的真实证书。

因此服务器始终不需要自己的证书,而探测者看到的只是一个普通网站。

公钥、Short ID、SNI 和指纹

REALITY 服务器会给你四项设置,每一项都必须与服务器一致。

设置 链接参数 含义
公钥 pbk 服务器的 X25519 公钥,一个 43 个字符的 Base64 字符串。私钥部分留在服务器上。
Short ID sid 服务器接受的一个短十六进制字符串,最多 16 个字符。服务器可以列出多个,每个用户或设备一个。
服务器名称(SNI) sni 服务器借用的网站。它必须是服务器允许的名称之一。
指纹 fp 要模仿哪种浏览器的 TLS 握手,如 chrome、firefox 或 safari。

指纹之所以重要,是因为 TLS 库的握手和浏览器的握手看起来不一样。模仿浏览器,才能让握手与服务器所假扮的网站保持一致。

VLESS Encryption

2025 年,Xray 加入了 VLESS Encryption,这是 VLESS 自己的一层可选加密。它使用后量子密钥交换(ML-KEM-768 搭配 X25519),客户端的值以 mlkem768x25519plus 开头。它可以不带 TLS 运行,也可以运行在 TLS 之上,包括搭配 Vision。

它仍然很新,你遇到的大多数服务器用的都是 TLS 或 REALITY,并设置 encryption=none。导入链接、订阅或 Xray 配置时,Potatso 会保留这项设置。支持的模式见 VLESS 参考。

优点和缺点

优点:

  • 不需要域名和证书。 REALITY 借用真实网站的握手。
  • 抵抗主动探测。 没有密钥的客户端会被转给真实网站。
  • 轻量。 VLESS 几乎不增加开销,Vision 也避免了重复加密。
  • 灵活。 同一个协议可以跑在裸 TCP、WebSocket、gRPC 或 XHTTP 上,搭配 TLS 或 REALITY。

缺点:

  • 更难检测,但不是无法检测。 流量特征仍然可以被分析。而且如果服务器的 IP 地址明显不属于所借用的网站,也可能显得格格不入。
  • 目标网站要选得用心。 它必须支持 TLS 1.3,选得不好可能让服务器变得显眼,甚至无法工作。
  • REALITY 不能套 CDN。 与 TLS 上的 WebSocket 不同,REALITY 服务器必须直连。
  • 设置必须完全一致。 公钥、Short ID 或 SNI 填错时,表现为超时或打开了一个普通网站,没有明确的错误提示。
  • UDP 需要手动开启。 许多客户端(包括 Potatso)默认为 VLESS 关闭 UDP,需要你自己打开。

VLESS REALITY 与其他协议对比

VLESS + REALITY VLESS + TLS Trojan VMess Hysteria 2
加密 REALITY(TLS 1.3) TLS TLS 内置加密,可选 TLS QUIC 中的 TLS 1.3
需要域名和证书 否 是 是 仅使用 TLS 时 是,或固定的自签名证书
能否经过 CDN 否 能,搭配 WebSocket、gRPC、XHTTP 能,搭配 WebSocket 或 gRPC 能,搭配 WebSocket 或 gRPC 否
运行于 TCP TCP TCP TCP UDP(QUIC)
面对探测时的应答 所借用的网站 你自己的网站(如有配置) 回落网站(如有配置) 取决于配置 伪装网站(如有配置)

想看更完整的对比,请阅读代理协议对比,或者了解 Trojan 和 Hysteria 2。

VLESS REALITY 链接长什么样

服务商通常会给你一个 vless:// 链接。下面是一个使用 REALITY 和 Vision、借用 www.example.com 的例子:

vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=reality&sni=www.example.com&fp=chrome&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&type=tcp&flow=xtls-rprx-vision#REALITY-Vision

从左往右看:

  • 3971e1b2-… 是你的用户 ID。
  • vless.example.com:443 是服务器和端口。
  • security=reality 启用 REALITY。
  • sni=www.example.com 是所借用的网站。
  • fp=chrome 是指纹。
  • pbk 和 sid 是公钥和 Short ID。
  • type=tcp 表示无传输方式,flow=xtls-rprx-vision 启用 Vision。
  • #REALITY-Vision 是这台服务器在 App 中显示的名称。

使用普通 TLS 的链接则是 security=tls,并且没有 pbk 和 sid。所有参数都列在 VLESS 参考中。

在 iPhone 上使用 VLESS REALITY

Potatso 是一款适用于 iPhone 和 iPad 的免费代理客户端,支持带 REALITY、Vision、XHTTP 和 VLESS Encryption 的 VLESS,并已在 Xray 和 sing-box 服务器上测试。按照 iPhone 配置 VLESS REALITY 教程导入你的链接,几分钟就能连上。

常见问题

VLESS REALITY 用一句话说是什么?
它是一台用 REALITY 代替普通 TLS 的 VLESS 代理服务器。服务器出示的是一个真实、无关网站的 TLS 握手,所以它不需要自己的域名和证书,只有知道其公钥和 Short ID 的客户端才能连到代理。
VLESS 有加密吗?
VLESS 本身没有内置加密,它依靠下层的 TLS 或 REALITY 来加密你的流量。Xray 较新的 VLESS Encryption 为它增加了一层可选的自有加密,但大多数服务器仍在用 TLS 或 REALITY。
xtls-rprx-vision 是什么?
它就是 Vision 流控,用于不带额外传输方式、搭配 TLS 或 REALITY 的 VLESS。它会填充你经代理打开的 TLS 连接的开头部分,让代理 HTTPS 流量中“TLS 套 TLS”的特征更难被识别。
VLESS REALITY 能做到完全无法检测吗?
没有哪种协议是无法检测的。REALITY 让服务器很难通过主动探测被识别出来,因为陌生访问者看到的是一个真实网站;但流量分析和其他信号,比如 IP 地址明显不属于所借用的网站,仍可能暴露它。
iPhone 上能用 VLESS REALITY 吗?
可以,只要客户端 App 支持 REALITY。Potatso 是一款适用于 iPhone 和 iPad 的免费代理客户端,可以导入带 REALITY 和 Vision 的 vless:// 链接,并连接 Xray 和 sing-box 服务器。

其他语言版本: English · 繁體中文 · 日本語 · Русский