VLESS Reality 节点在 v2rayNG 中并不难配置,真正容易出错的是把 Reality 参数填错位置,或者把服务端给出的字段当成普通 TLS 参数处理。一个完整的 VLESS Reality 节点通常同时包含服务器地址、端口、UUID、传输方式、流控、SNI、指纹、公钥和 Short ID。它们必须与服务端逐项匹配,只修改其中一个字段,往往就会出现超时、握手失败或连接后无法打开网页。
本文以 v2rayNG 的手动添加流程为主,说明 VLESS Reality 中的 Public Key、Short ID、SNI、指纹和 Flow 分别对应客户端哪些输入项,并给出一套从保存节点、启动连接到查看日志的验证方法。适合已经拿到完整节点参数,但不知道安卓客户端如何填写的用户。
先认识 VLESS Reality 的参数对应关系
VLESS Reality 不是单独的一种协议名称,而是由 VLESS、TCP、REALITY 安全层以及可选的 Vision 流控组合而成。服务端通常使用 Xray-core 部署,客户端则需要使用支持 REALITY 的 Xray 内核。v2rayNG 可以显示和填写这些字段,但客户端版本过旧、内核不匹配或导入链接缺少参数时,仍然可能无法正常连接。
| 服务端字段 | v2rayNG 中的对应项目 | 填写说明 |
|---|---|---|
address |
地址 | 填写节点域名或服务器 IP,不要把 SNI 当成连接地址。 |
port |
端口 | 常见示例是 443,实际必须以订阅或服务端资料为准。 |
id |
用户 ID | 通常是 UUID,少一个字符都会导致认证失败。 |
encryption |
加密 | 常见 VLESS 配置为 none,这不代表 Reality 外层没有安全保护。 |
serverName |
SNI 或服务器名称 | 填写服务端指定的伪装域名,不能随意替换成节点地址。 |
publicKey |
公钥 | Reality 服务端公钥,通常是一串大小写字母、数字和符号组成的字符串。 |
shortId |
Short ID 或短 ID | 填写服务端给出的十六进制短标识;没有提供时不要自行猜测。 |
fp |
指纹 | 常见值为 chrome,必须与服务端允许的客户端指纹策略相容。 |
结论:地址和 SNI 不是一回事
地址决定客户端连接哪台服务器,SNI 决定握手时使用哪个服务器名称。两者有时相同,但在 Reality 节点中经常不同;看到两个域名时,应按字段名称分别填写,不能只保留其中一个。
在 v2rayNG 中手动添加节点
如果服务提供方给出的是完整的 vless:// 分享链接,优先使用导入方式,因为链接中的公钥、Short ID、SNI 和指纹不容易在复制时漏掉。只有在没有分享链接、需要修正单个字段,或者想学习每个参数含义时,才建议手动创建。不同版本的 v2rayNG 菜单文字可能略有差异,但核心字段基本相同。
打开配置页面
启动 v2rayNG,点击主界面右上角的添加按钮,选择“手动输入”或“VLESS”配置项。若已有错误节点,可长按该节点选择编辑,而不是重复创建多个副本。
填写基础信息
在地址、端口和用户 ID 中分别填写服务器域名、服务端口和 UUID。传输方式选择 TCP;加密填写或保留为
none。不要把节点名称、备注文字或带空格的说明复制进地址字段。选择 Reality
找到安全或传输安全选项,将安全类型设置为 REALITY。启用后,界面通常会出现 SNI、指纹、公钥、Short ID 和 SpiderX 等附加输入项。
填写握手参数
把服务端的 SNI 填入“服务器名称”或“Server Name”,把 Public Key 填入“公钥”,把 Short ID 填入“短 ID”,把 fingerprint 填入“指纹”。服务端要求 Vision 时,在 Flow 中填写
xtls-rprx-vision。保存并启动
填写完成后点击保存,回到主界面选中刚创建的节点,点击启动连接并允许 v2rayNG 建立本地 VPN。首次测试只保留一个节点运行,避免多个配置同时切换造成误判。
Public Key、Short ID 和 SNI 到底填在哪里
VLESS 基础部分
- 协议
- VLESS
- 地址
- 服务端地址
- 端口
- 例如 443
- 用户 ID
- UUID
- 加密
- none
这些字段负责确定连接目标与 VLESS 身份认证。
Reality 安全部分
- 安全
- REALITY
- SNI
- 服务器名称
- 指纹
- chrome 等
- 公钥
- Public Key
- 短 ID
- Short ID
这些字段负责 Reality 握手,必须使用服务端配套值。
“公钥”不是服务器地址,也不是 UUID。Public Key 通常由服务端生成,客户端只需要原样复制。Short ID 也不是端口号,它是 Reality 握手使用的短标识,常见为长度较短的十六进制字符串。若服务端给出多个 Short ID,应根据节点说明选择对应值,不要把完整公钥截短后当成 Short ID。
SNI 在不同版本界面中可能显示为“服务器名称”“Server Name”或“域名”。它用于 TLS/Reality 握手中的名称信息,通常是服务端指定的可访问站点域名。指纹则常见为 chrome、firefox、safari 等预设值,不能把手机型号、安卓版本或浏览器版本直接填进去。SpiderX 如果服务端没有提供,一般保持为空;不要为了“补全参数”随便填写路径。
Flow 是另一个容易误填的项目。只有服务端明确要求 Vision,或者分享链接中已经带有对应值时,才填写 xtls-rprx-vision。如果服务端没有启用 Vision,却在客户端强行添加 Flow,可能导致握手阶段失败。反过来,服务端要求 Flow 而客户端留空,也可能出现连接建立后立即中断的情况。
适合已经拿到完整 VLESS Reality 链接的用户,参数由链接一次性写入,漏填概率较低。
适合:日常使用、批量导入节点
适合服务商提供二维码的情况,扫描后仍应打开编辑页面检查 SNI、公钥和 Short ID。
适合:手机端快速添加
可以逐项理解参数,便于修复单个字段,但复制长字符串时最容易产生空格或漏字符。
适合:没有分享链接、需要排错
通过连接测试确认配置是否生效
保存节点后,不要只看主界面是否出现绿色或已连接状态。v2rayNG 显示连接成功,通常只能说明本地 VPN 接口已经启动,不能完全证明远端 Reality 握手、DNS 解析和目标网站访问都正常。应按“启动核心、访问网页、查看日志、测试延迟”的顺序进行验证。
- 先确认节点名称旁边的状态变化,观察启动后是否持续保持连接,而不是几秒后自动断开。
- 打开一个平时可以访问的网页,再测试一个明确需要代理的目标,比较是否都能正常加载。
- 在 v2rayNG 的日志或运行日志页面查看启动信息,重点留意
REALITY、handshake、context deadline exceeded和connection refused等关键词。 - 使用客户端提供的延迟测试时,先测试当前节点,不要同时批量测试几十个配置,以免把网络拥塞误认为节点故障。
address: edge.example.net
port: 443
protocol: VLESS
encryption: none
security: reality
serverName: www.example.com
fingerprint: chrome
publicKey: 服务端提供的 Public Key
shortId: 服务端提供的 Short ID
flow: xtls-rprx-vision
上面的内容只是字段结构示例,不能直接作为可用节点。实际使用时,edge.example.net、服务器名称、公钥、Short ID、UUID 和端口都必须替换为服务商提供的真实参数。尤其不要因为示例使用了 www.example.com 就把它当作固定 SNI;Reality 的 SNI 必须属于服务端部署允许的握手名称。
连接失败时按字段逐项排查
如果节点启动后持续超时,先不要反复更换指纹或随机修改 SNI。最有效的方法是保留服务端原始资料,逐项对照客户端编辑页。由于 Reality 参数多为长字符串,肉眼检查容易漏掉一个字符,可以重新复制整段内容,删除旧节点后重新导入,再进行第二次测试。
| 现象 | 优先检查 | 处理方法 |
|---|---|---|
| 连接立即失败 | 地址、端口、协议和内核 | 确认地址可解析,端口没有写错,并确认使用的是支持 Reality 的 Xray 内核。 |
| 握手超时 | SNI、指纹、公钥、Short ID | 重新复制四项参数,检查是否存在空格、换行或大小写错误。 |
| 认证失败 | UUID 与 Flow | 确认 UUID 完整,服务端要求 Vision 时填写正确的 Flow,不要求时不要擅自添加。 |
| 已连接但网页打不开 | 路由、DNS 和本地 VPN | 先访问普通目标,再检查 DNS 设置和应用是否被分应用代理规则排除。 |
| 偶尔能连但频繁断开 | 线路质量、MTU、网络切换 | 在同一网络下连续测试,区分参数错误与移动网络丢包、IPv4/IPv6 可达性问题。 |
排错原则:一次只改一个变量
先固定地址、端口和 UUID,只核对 Reality 四项握手字段;确认能连接后,再测试 Flow、路由或 DNS。一次同时修改 SNI、公钥、指纹和传输方式,会让日志失去对照价值。
如果日志出现 connection refused,通常更接近端口未开放、服务端监听异常或地址指向错误,而不是 Short ID 填错。若出现 context deadline exceeded,可能是网络无法到达服务器,也可能是握手参数不匹配,需要结合其他日志判断。若日志提示用户认证失败,应优先重新核对 UUID,而不是先更换 SNI。
还要检查 v2rayNG 的分应用代理设置。如果只有某个应用无法访问,而浏览器和其他应用正常,可能是该应用没有被加入代理范围,或者路由规则将目标设为直连。若所有应用都无法访问,再回到节点参数、核心日志和网络可达性检查。连接测试时保持当前节点不变,记录网络类型、延迟和错误时间,后续更容易比较。