线路节点 协议知识

VLESS + Reality 是什么?原理、优点与客户端支持

VLESS + Reality 是什么?本文讲清 VLESS 协议的特点、Reality 借用真实网站 TLS 握手的原理、XTLS Vision 流控的作用,以及订阅中 pbk、sid、sni、fp 等参数的含义,并对比 Clash Verge Rev、sing-box、v2rayN、Shadowrocket 支持。

VLESS + Reality 是什么?原理、优点与客户端支持

核心结论

VLESS 是一种不自带加密、只负责身份验证与转发的轻量协议;Reality 是它常用的传输安全层,客户端借用一个真实大型网站的 TLS 握手与服务器建立连接,无需自有域名和证书,未通过验证的探测会被转交给那个真实网站。它的优势是抗探测能力强、性能开销低,但不会改变出口 IP,也不会让线路变快。

文章目录 11 个章节
  1. 一句话回答
  2. VLESS 是什么
  3. Reality 解决了什么问题
  4. 握手过程分步理解
  5. XTLS Vision 的作用
  6. 与其他常见方案的对比
  7. 客户端支持情况
  8. 订阅里的参数怎么看
  9. 验证节点是否正常工作
  10. 本站收录品牌的协议情况
  11. 什么情况下优先选 Reality 节点
  12. 常见误区
  13. 常见问题

一句话回答

VLESS + Reality 是目前直连节点中最常见的组合之一:VLESS 负责“认人”和转发,Reality 负责让这条连接在外观上和访问一个真实大型网站毫无区别。它不需要机场准备自己的域名和证书,抗主动探测能力强,同时性能开销很低。

但它不能让线路变快,也不会改变出口 IP。晚高峰卡不卡取决于线路,AI 能不能用取决于落地 IP,这两件事都不归协议管。

VLESS 是什么

VLESS 是 Xray 与 V2Ray 生态中的一种代理协议,可以理解为 VMess 的“瘦身版”。可以在术语表中查看简要定义,它的特点是:

  • 用 UUID 做身份验证:客户端每次连接时携带 UUID,服务端核对通过才转发;
  • 本身不加密:配置中的 encryption 固定为 none,安全性完全交给外层的 TLS 或 Reality;
  • 不校验时间:不像 VMess 那样要求客户端与服务器时间误差在约 90 秒以内,因时间不准导致的连接失败更少;
  • 开销低:没有重复加密,CPU 占用和延迟都更友好。

正因为 VLESS 本身不加密,它必须和 TLS 或 Reality 搭配使用。

Reality 解决了什么问题

传统的 VLESS + TLS 或 Trojan 方案,需要机场准备一个域名并申请证书。这带来两个问题:一是域名本身可能被识别或封锁,二是握手中的证书、SNI 等特征可能暴露“这不是一个普通网站”。

Reality 的思路是:不用自己的证书,而是借用一个真实网站的 TLS 握手。服务端配置一个目标网站(通常是支持 TLS 1.3 的大型境外网站),客户端握手时用这个网站的域名作为 SNI,看起来就像普通用户在访问它。

握手过程分步理解

  1. 客户端模拟主流浏览器的 TLS 指纹(由 fp 参数指定,如 chrome),向节点发起 TLS 1.3 握手,SNI 填写被借用的网站域名;
  2. 客户端在握手信息中嵌入一段只有持有正确公钥与 short-id 才能生成的认证数据;
  3. 服务端收到握手后检查这段认证数据:通过,就进入代理流程;不通过,就把整个连接原样转交给真实目标网站;
  4. 因此,主动探测者连过来时,看到的是真实网站的证书和页面,很难判断这台服务器在做代理;
  5. 客户端不依赖证书颁发机构,而是用订阅里的公钥(pbk)验证自己连上的是真正的节点服务器。

XTLS Vision 的作用

在代理里再跑 HTTPS 时,会出现“TLS 里面套 TLS”的现象,数据包的长度和时序有一定规律,可能被识别。xtls-rprx-vision 流控会识别内层 TLS 流量并减少这种二次封装特征,同时降低加解密开销。它通常与 Reality 一起用于 TCP 传输。

与其他常见方案的对比

对比项 VLESS + Reality VLESS + TLS(含 WS / CDN) VMess + TLS Trojan
是否需要自有域名证书 不需要 需要 需要 需要
抗主动探测 强,探测被转交真实网站 中,依赖伪装站点 中 中,可回落到网页
性能开销 低 低到中(CDN 会增加延迟) 中,存在二次加密 低
时间校验 无 无 有,约 90 秒 无
能否套 CDN 不能 能 能 通常不套
常见用途 直连节点、落地节点 需要隐藏服务器 IP 的场景 老订阅兼容 通用

三种主流协议的更完整对比见 Trojan、VLESS、Shadowsocks 怎么选。

客户端支持情况

客户端 内核 Reality Vision 流控 说明
Clash Verge Rev Mihomo 支持 支持 原版 Clash 内核不支持,需使用 Mihomo
sing-box 官方客户端 sing-box 支持 支持 需要较新版本
v2rayN Xray(默认) 支持 支持 Reality 由 Xray 项目推出,兼容性最好
Shadowrocket 自研 支持 支持 iOS 端常用,建议保持 App 更新

以上为主流客户端的公开支持情况,具体以客户端实际版本与官方说明为准。旧版客户端遇到新参数时可能直接跳过节点或提示解析失败。

订阅里的参数怎么看

一条 VLESS + Reality 分享链接的结构大致如下(尖括号为占位内容):

vless://<UUID>@entry.example.com:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=<借用的网站域名>&fp=chrome&pbk=<服务端公钥>&sid=<short-id>&type=tcp#节点名称

在 Mihomo(Clash Verge Rev)配置中,对应字段是这样写的:

- name: 节点名称
  type: vless
  server: entry.example.com
  port: 443
  uuid: <UUID>
  network: tcp
  tls: true
  flow: xtls-rprx-vision
  servername: <借用的网站域名>
  client-fingerprint: chrome
  reality-opts:
    public-key: <服务端公钥>
    short-id: <short-id>

各参数含义:sni / servername 是借用的网站;pbk / public-key 用于验证服务器身份;sid / short-id 是认证用的短标识;fp / client-fingerprint 决定模拟哪种浏览器的握手指纹。这些都由机场生成,不要手动改动,改错任何一个都会导致连接失败。

验证节点是否正常工作

  1. 在客户端中选中 Reality 节点,做一次延迟测试;
  2. 在终端通过代理端口访问测试地址,确认能返回结果;
  3. 查看返回内容中的 loc= 字段,确认出口地区与节点名称一致。

Windows PowerShell:

curl.exe -x http://127.0.0.1:7897 -s https://www.cloudflare.com/cdn-cgi/trace

macOS / Linux:

curl -x http://127.0.0.1:7897 -s https://www.cloudflare.com/cdn-cgi/trace | grep -E "^(ip|loc)="

端口 7897 是 Clash Verge Rev 常见的默认混合端口,以你客户端中的实际设置为准。如果返回握手错误,可参考 TLS 握手失败的排查方法。

本站收录品牌的协议情况

根据品牌资料,宇宙云(全 IEPL 专线)、光速云(IPLC + 原生 IP)、飞猫云、星岛梦、无忧链接都使用 VLESS 协议;二猫云使用 Shadowsocks 与 VMess;暮光网络和微风网络未公开协议。品牌资料只标注了 VLESS,没有注明是否搭配 Reality,这取决于各家对不同节点的配置,导入订阅后查看节点的 security 参数即可确认。

需要注意的是,这几家都以专线为主,专线节点的入口在国内,跨境段不走公网,是否使用 Reality 对体验影响不大;Reality 的价值在直连节点上体现得更明显。

什么情况下优先选 Reality 节点

  • 订阅里同时有直连与中转节点:直连节点直接暴露在公网上,Reality 的抗探测优势最有意义;
  • 所在网络对 UDP 不友好:Reality 基于 TCP,校园网、公司网络中通常比 Hysteria2 这类 UDP 协议更容易连通;
  • 长期挂着的 AI 编程终端:VLESS 不校验时间,电脑休眠唤醒后因时间漂移断线的情况更少,但稳定性仍主要取决于线路与丢包。

如果你的订阅全部是专线节点,就不必为了 Reality 刻意更换机场,把精力放在晚高峰实测上更划算。

常见误区

  1. “换成 Reality 就不卡了”:Reality 只改变握手外观,晚高峰拥堵是线路问题,应看线路怎么选。
  2. “借用了某网站,出口 IP 就是那个网站”:出口 IP 始终是节点服务器自己的 IP,AI 服务看到的仍是落地 IP。
  3. “SNI 可以随便改”:SNI 必须与服务端配置的目标网站一致,随意修改会直接握手失败。
  4. “所有客户端都支持”:原版 Clash 内核和长期不更新的客户端并不支持,遇到节点缺失先升级内核。
  5. “Reality 比 Hysteria2 更快”:两者设计目标不同,Hysteria2 在高丢包网络下有速度优势,详见 Hysteria2 与 AnyTLS。

使用任何网络服务时,请遵守当地法律法规与服务条款。

常见问题

VLESS 本身有加密吗?

VLESS 协议本身不做加密(配置中 encryption 为 none),数据安全依赖外层的 TLS 或 Reality。单独使用 VLESS 而不搭配 TLS / Reality 是不安全的,正规机场也不会这样配置。

Reality 里填的那个网站域名是做什么的?

它是被“借用”的目标网站,客户端在握手时以这个域名作为 SNI,看起来就像在访问该网站。这个网站只用于伪装握手,你的流量最终仍从节点服务器出去,出口 IP 不会变成那个网站的 IP。

导入订阅后 Reality 节点全部连不上怎么办?

先确认客户端和内核是较新版本,旧版可能不认识 public-key、short-id 等参数;再检查系统时间是否准确,并换一个非 Reality 节点对比。仍不行可参考 TLS 握手失败的排查步骤。

专线节点也需要 Reality 吗?

不一定。专线节点的跨境段走专用通道,入口在国内,抗探测需求比直连节点低,很多机场会直接使用 VLESS 或 Shadowsocks。是否使用 Reality 取决于机场配置,以订阅中的 security 参数为准。

xtls-rprx-vision 必须开启吗?

这取决于服务端配置。服务端启用了 Vision 流控时,客户端的 flow 必须填写 xtls-rprx-vision,否则无法连接;机场订阅一般会自动带上这个参数,不需要手动修改。

本文最后更新于 。网络服务与 AI 平台政策变化较快,如发现信息过时,欢迎通过联系我们反馈。