本文速览

VLESS 负责代理协议与用户认证,REALITY 负责连接安全与握手表现,XTLS Vision 负责识别流量并优化转发。本文适合已经拿到 VLESS 节点、需要核对 REALITY 参数的用户:先区分三者职责,再检查 flow、fingerprint、serverName、公钥与 shortId,最后按日志定位连接失败,而不是反复更换指纹。

VLESS、REALITY、Vision 分别负责什么

节点名称中的“VLESS + REALITY + Vision”不是三个并列协议。VLESS 位于代理协议层,用 UUID 等信息识别用户,并携带目标地址。它本身不提供像 VMess 那样的数据加密机制,因此经公网使用时,需要由合适的安全传输机制保护连接。把 VLESS 的 encryption 写成 none,不等于整条链路以明文运行。

REALITY 是 Xray 生态中的安全传输机制。它结合 TLS 握手特征、服务端密钥与客户端认证信息建立受保护的连接。XTLS Vision 则通过 flow 选择,负责初始流量处理、填充以及满足条件后的转发优化。名称里有 V2Ray 的客户端,不代表其所用内核一定支持这组配置;这里讨论的是 Xray 内核中的实现。

应用请求 VLESS 封装 REALITY 握手 Vision 处理 目标连接

这条流程链表示逻辑职责,不表示每个阶段都单独新建一条网络连接。实际连接中,认证、握手和流量处理相互衔接。排错时先定位是哪一层失败:端口不通属于连接问题,公钥不匹配属于安全握手问题,UUID 不匹配属于代理认证问题,网页分流错误则通常要检查 routing。

从 TLS 握手理解 REALITY 的作用

浏览器访问 HTTPS 网站时,会先发送 ClientHello,携带支持的 TLS 版本、密码套件、扩展等信息。服务端返回相应的握手消息,双方协商密钥。传统的代理外层 TLS 也要完成类似过程;如果内层又是浏览器到网站的 HTTPS,会形成“网站 TLS 套在代理 TLS 里面”的结构。

REALITY 的设计不是让用户随便填一个知名域名就能获得同样的握手表现。服务端需要配置合适的目标站点与允许的服务名;客户端还要持有与服务端配置配套的公钥、shortId 等参数。合法客户端利用这些信息认证服务端并建立连接,不是仅依赖目标网站的常规证书信任路径。

对未通过相应认证的连接,REALITY 可将其交给配置的目标站点处理,使对外行为更接近真实网站。这里的“借用”不意味着合法代理流量全部绕经该网站,也不意味着目标网站在替代理服务器转发用户数据。目标站点的选择、可达性以及握手兼容性,仍然会影响部署结果。

XTLS Vision 怎样减少 TLS in TLS

普通加密代理转发 HTTPS 时,浏览器已经把应用数据加密成 TLS 记录,代理外层又会加密一次。这样做能够提供隧道保护,但会增加加解密与封装工作,也可能形成可观察的嵌套流量特征。Vision 的目标之一,是识别合适的内层 TLS 流量,在满足条件后避免对已经加密的有效载荷继续套用同样的外层加密路径。

Vision 会处理连接初期的数据并使用填充,然后根据识别到的 TLS 状态决定后续路径。对于受支持、可识别且满足实现条件的 TLS 1.3 流量,可以进入优化转发阶段;这不等于所有字节、所有协议和所有连接从一开始就直接透传。非 TLS 流量或不满足条件的连接,仍需要由隧道保护。

流量情形应如何理解不能据此推断
符合条件的 TLS 1.3 流量可进入 Vision 的优化转发路径所有请求都会按同一比例提速
非 TLS 的 TCP 流量仍需保留隧道提供的安全保护VLESS 的 none 会让公网链路裸传
UDP 与 QUIC 流量应单独检查 UDP 转发与相关封装支持TCP 场景中的优化结论可以直接套用
握手或认证失败先修复基础连接与参数匹配打开 Vision 就能绕过认证错误

Vision 不需要解密浏览器与目标网站之间的 HTTPS 内容。网站证书校验仍由浏览器执行,内层 TLS 的端到端关系仍然存在。REALITY 保护并认证客户端到代理服务器的连接,网站 TLS 保护浏览器到目标网站的应用数据,两者的边界不能混为一谈。

判断:先验证连接,再比较性能

确认同一节点能稳定完成请求后,再用相同文件、相同时间段与相同并发数比较吞吐和 CPU 占用。不要用一次延迟测试来证明 Vision 是否进入优化路径,也不要把服务器带宽差异归因于 flow。

flow 与 fingerprint:客户端逐项核对

在 v2rayN 中,先确认当前节点由 Xray 内核运行,再编辑已有 VLESS 节点。常见界面的入口是选中节点后右键“编辑服务器”;手动新增通常位于“服务器”菜单中的 VLESS 添加项。不同版本的菜单措辞可能有差异,应以编辑窗口中的协议、传输、安全与流控字段为准,不要只看节点备注。

协议与传输

protocol
vless
encryption
none
flow
xtls-rprx-vision
传输
常见为 TCP;部分新界面标为 RAW

这些值只适用于服务端已启用对应组合的节点,不能覆盖所有 VLESS 节点。

REALITY 安全参数

security
reality
fingerprint
chrome,或提供方指定值
serverName
与服务端允许的服务名一致
公钥与 shortId
使用该节点提供的配套参数

订阅导入后也要检查安全类型,不能把 REALITY 参数填进普通 TLS 表单后直接使用。

flow 表示流控方式,不是加密算法下拉框。服务端用户配置和客户端必须相互兼容;服务端要求 Vision 时,客户端留空可能导致认证或流控检查失败。旧资料中的其他 XTLS 流控值不能直接替换 xtls-rprx-vision。

fingerprint 控制客户端 TLS ClientHello 的模拟特征。chrome 是常见取值,但它不会把代理程序变成浏览器,也不保证连接无法被识别。填写任意字符串可能被内核拒绝;频繁切换指纹也不能修复错误公钥。除非有明确兼容性原因,优先保留节点提供的设置。

{
  "flow": "xtls-rprx-vision"
}

{
  "security": "reality",
  "realitySettings": {
    "fingerprint": "chrome"
  }
}

上面是两段分别展示字段归属的 JSON 摘录,不是完整配置,不能直接合并后运行。第一段的 flow 位于 VLESS 出站用户对象;第二段的安全设置位于 streamSettings。真实配置还需要服务器地址、UUID、服务名及密钥相关字段。公钥在界面、分享链接和不同版本内核中的字段名称可能不同,应使用客户端生成的配置,避免跨版本机械照抄。

端口、内核与日志:按顺序检查连接

排错前先分清远端端口与本地入口。节点使用的远端端口由服务端决定,443 只是常见配置,不是 REALITY 强制要求。本地代理监听端口则由客户端决定;应用连错本地端口时,即使远端节点配置完全正确,请求也不会进入预期的出站。

443
常见远端 TCP 端口,实际以节点为准
10808
本地代理端口示例,需核对监听设置
TLS 1.3
理解 Vision 优化条件的关键版本
  1. 记录当前配置。保留节点地址、远端端口、UUID、flow、SNI、公钥与 shortId 的原始值。分享截图时遮住认证信息,不要公开完整订阅地址。
  2. 确认实际内核。检查启动日志中的内核名称与版本。v2rayN 可以管理不同内核,界面版本更新不等于当前运行内核已经切换。安卓端的 v2rayNG 使用 Xray 内核;不要把使用 V2Fly 内核的 v2flyNG 当成 REALITY 配置的等价入口。
  3. 检查 TCP 可达性。连接超时或被拒绝时,先检查远端监听、防火墙和地址解析。TCPing 成功只说明端口能够建立 TCP 连接,不代表 REALITY 认证通过。
  4. 检查握手与认证。若端口可达但请求失败,逐项比较服务名、公钥、shortId、UUID 与 flow,并将两端系统时间同步。密钥报错不是路由规则可以修复的问题。
  5. 用新请求复测。保存后重新加载节点,再发起新的网页请求。浏览器已有连接可能继续复用旧会话;同时查看日志中的出站标签,确认请求确实进入目标代理。

如果内核能启动,节点测试也能完成,但只有部分网站打不开,应转向检查 DNS 与 routing。域名被直连规则提前命中、应用未使用系统代理、UDP 请求未进入代理,都可能造成“节点正常、应用失败”。此时反复修改 REALITY 公钥只会引入新的变量。字段含义可对照配置大全,首次接入步骤可参照使用指南。

REALITY 与 Vision 常见问题

VLESS 的 encryption 是 none,要不要改成 auto?

不要。VLESS 出站通常使用 none,auto 不能从 VMess 的设置直接搬过来。编辑节点时应核对安全类型是否为 REALITY,以及公钥、SNI、shortId 是否完整;传输保护由对应安全机制承担。

把 fingerprint 换成 chrome 就能连上吗?

只有原来的指纹不被支持或与配置要求不符时,这种修改才可能有帮助。先保留提供方指定值,再看日志区分超时、握手失败与用户认证失败。地址错误、UUID 错误或公钥错误,都不能靠更换指纹修复。

REALITY 一定要开 Vision 吗?

两者职责不同,不能把 REALITY 与某一个 flow 值视为同义词。客户端是否填写 xtls-rprx-vision,应与服务端用户配置和内核支持范围保持一致。拿到现成订阅时,先使用导入值,不要为了测速自行增删 flow。

TCPing 很低,为什么打开网页还是慢?

TCPing 不包含完整的代理认证、目标站点连接与内容下载。先执行真连接测试,再用固定目标测试下载;同时检查 DNS 耗时、丢包、服务器负载和出口带宽。若只在特定域名出现问题,查看路由命中结果,比改 SNI 更有针对性。

普通 TLS 节点能直接改成 REALITY 吗?

不能只改客户端安全类型。服务端需要配置 REALITY 对应的密钥、目标、服务名与用户参数,再将配套信息交给客户端。普通 TLS 的证书设置不能替代这套认证配置;已有节点应先由服务端完成部署,再重新导入。