在 v2rayNG 中配置 VLESS Reality,真正容易出错的地方通常不是“添加节点”这一步,而是把服务端给出的 Reality 参数填到了错误字段,或者把传输层、TLS 安全层和路由设置混在一起。VLESS 负责用户认证,Reality 负责在 TLS 握手阶段提供伪装与密钥校验;地址、端口、UUID、Server Name、Public Key、Short ID 任何一个字符不一致,都可能表现为连接超时、握手失败或连接后立即断开。
本文以 v2rayNG 1.10.x 的常见界面为参考,说明从手动添加节点、填写每一个字段,到启动连接、查看日志和定位错误的完整过程。不同版本的菜单名称可能略有差异,例如“配置文件”可能显示为“服务器”或“节点”,但 VLESS Reality 的核心字段和判断方法基本一致。
本文适合已经拿到 VLESS Reality 节点参数,却不知道 v2rayNG 每个字段如何对应的用户。你将按「配置文件」→「新增配置」→「手动输入」路径完成填写,理解 UUID、Public Key、Short ID、SNI 与指纹的作用,并用日志中的错误关键词判断究竟是参数拼写、时间同步、网络连接还是核心兼容性问题。
先认识 VLESS Reality 的参数结构
一条完整的 VLESS Reality 节点,通常由基础连接参数、VLESS 用户认证参数和 Reality 安全参数三部分组成。基础连接参数决定 v2rayNG 要连接哪台服务器,例如服务器地址和端口;VLESS 参数用于确认用户身份;Reality 参数则参与 TLS 握手和目标站点伪装。填写时不要只盯着“安全”或“传输”选项,而要先把服务端提供的原始信息分组。
基础连接参数
- 地址
- 服务器域名或 IP
- 端口
- 服务端监听端口,如 443
- 用户 ID
- UUID,逐字符复制
- 加密方式
- none
- 协议
- VLESS
地址和端口决定 TCP 连接目标,UUID 决定服务端是否接受这次 VLESS 认证。
Reality 安全参数
- 传输协议
- TCP
- 安全类型
- Reality
- SNI
- Server Name
- 公钥
- Public Key
- 短 ID
- Short ID
- 指纹
- chrome
这些字段必须与服务端 Reality 入站及分享链接中的参数配套,不能根据自己的理解随意替换。
其中,Server Name 有时在服务端说明中写作 SNI、serverName 或目标域名;Public Key 可能写作 pbk;Short ID 可能写作 sid;指纹可能写作 fingerprint 或 fp。服务商给出的是分享链接时,这些字段通常已经编码在链接参数中,导入后只需要逐项核对,不要重新手动改写。
进入 v2rayNG 手动添加界面
使用手动配置前,建议先关闭其他代理应用和系统 VPN,避免测试时出现多个本地隧道同时运行。v2rayNG 不同版本的主界面布局可能不同,但新增节点通常都在右下角加号按钮或顶部菜单中。若已有订阅配置,可以先备份当前可用节点,再新增一个独立的手动配置,便于对照日志。
-
打开配置列表
启动 v2rayNG,在主界面进入「配置文件」或「服务器」列表,点击右下角的“+”按钮。选择「手动输入 VLESS」或名称相近的 VLESS 配置入口,不要误选 VMess、Trojan 或通用导入选项。
-
填写服务器信息
在「地址」填写服务端域名或 IP,在「端口」填写服务端端口,在「用户 ID」填写完整 UUID。「加密方式」保持为
none;VLESS 的认证不是通过把这里改成 aes-128-gcm 或 auto 来实现的。 -
选择传输安全
将传输协议设为「TCP」,安全或底层安全选项设为「Reality」。如果界面先显示 TLS,再在下一级菜单中选择 Reality,应确认最终显示的不是普通 TLS。Reality 与普通 TLS 的参数结构不同。
-
填写 Reality 参数
在 Reality 设置区域依次填写 Public Key、Short ID、Server Name 和指纹。Public Key 粘贴服务端提供的公钥,Short ID 只填写十六进制短 ID,指纹通常选择
chrome,但应以节点提供方的说明为准。 -
保存并选中节点
保存配置后返回节点列表,长按或点击该节点打开编辑页,逐项复核参数。点击节点右侧的选择按钮,让它成为当前活动配置,再点击主界面的启动按钮建立 VPN 连接。
如果界面中存在“Flow”字段,VLESS Reality 常见值是 xtls-rprx-vision,但只有服务端明确启用 Vision 时才填写。没有 Flow 的普通 TCP Reality 节点不要擅自添加该值;Flow 不匹配时,可能出现握手完成后连接马上被服务端关闭。Network、Header、Path 和 Host 也不能凭经验填写,TCP Reality 通常不需要 WebSocket 路径。
每个字段如何填写与核对
下面这组对应关系适合用来核对分享链接和 v2rayNG 编辑页面。字段名称可能因核心版本或界面翻译不同而变化,但含义不会改变。尤其要注意“地址”和“SNI”不是同一个概念:地址是客户端实际连接的服务器入口,SNI 是握手时发送的目标名称,两者在 Reality 配置中经常不同。
| v2rayNG 字段 | 分享链接参数 | 填写示例 | 常见注意事项 |
|---|---|---|---|
| 地址 | host | node.example.net | 填写节点入口,不一定等于 SNI |
| 端口 | port | 443 | 必须是服务端开放的端口 |
| 用户 ID | uuid | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | 不要多复制空格或引号 |
| 加密方式 | encryption | none | VLESS 通常保持 none |
| 公钥 | pbk | 服务端生成的 Reality Public Key | 不是私钥,也不是 UUID |
| 短 ID | sid | 6f2a9c | 只复制服务端允许的值 |
| Server Name | sni | www.example.com | 必须属于服务端配置的目标名称 |
| 指纹 | fp | chrome | 优先按节点说明选择 |
地址:如果节点提供的是域名,建议完整复制,不要自行删除子域名前缀。如果提供的是 IPv4 地址,直接填写地址即可。地址后面不要带 https://、路径或端口分隔符;端口应单独填写。端口:常见是 443,但 443 只是示例,不代表所有 Reality 节点都使用这个端口。服务端使用 8443、2053 或其他端口时,必须以实际配置为准。
UUID:UUID 是 VLESS 用户标识,大小写和连字符通常都应完整保留。复制时要检查开头和结尾是否被截断,聊天软件中的富文本也可能把一部分字符变成不可见空格。加密方式:VLESS 节点一般填写 none,这并不代表链路没有加密;实际加密由 Reality 所承载的 TLS 握手和传输层完成。
Public Key:这是服务端 Reality 公钥对应的客户端验证参数。它和服务端保存的私钥是一对,客户端只应填写公钥。把私钥、服务器 UUID 或其他节点的公钥粘贴到这里,都会导致 Reality 握手失败。Short ID:它是服务端允许的短标识之一,可以为空、较短或包含偶数个十六进制字符,具体取决于服务端配置。不要擅自补零,也不要把整段节点备注当作 Short ID。
Server Name:它通常是一个可用于 TLS 握手的域名。Reality 服务端会根据配置校验这个名称,客户端填写的 SNI 必须与服务端允许的目标一致。把服务器地址直接复制到 SNI 有时可以工作,但如果服务端分享参数给出了单独的 SNI,就应优先使用分享参数。指纹:指纹用于选择客户端握手特征,常见值有 chrome、firefox 或 safari 等;没有特殊要求时常见默认值是 chrome,但不要把它误填成系统版本或浏览器完整名称。
结论:先保证参数成组匹配
Reality 的 Public Key、Short ID、Server Name 和服务端入口不是可以自由组合的独立选项。最可靠的做法是使用同一条分享链接中的整组参数,只修改节点备注,不要把一个节点的公钥与另一个节点的 SNI 拼在一起。
启动连接并确认是否真正可用
保存配置后,第一次测试不要马上修改 DNS、分应用代理或路由规则。先使用最简单的连接环境判断 Reality 握手是否成功。打开 v2rayNG 的 VPN 开关后,系统通常会请求建立 VPN 权限;确认授权后,等待主界面状态变化。连接成功不只看按钮颜色,还要结合日志、延迟测试和实际网页访问进行判断。
- 状态检查:节点列表中当前节点应显示已连接或可用,主界面的 VPN 状态应保持运行,而不是启动几秒后自动停止。
- 延迟测试:使用 v2rayNG 的测试功能检查 TCP 延迟或 URL 测试结果。延迟数值只代表测试请求完成,不等于所有网站都能访问。
- 出口检查:打开一个可正常访问的 IP 或网络连通性检测页面,确认出口地址发生变化。不要只根据某个网页的地区文字判断。
- 应用范围:如果启用了分应用代理,确认测试浏览器已经包含在代理应用列表中;否则节点本身可用,浏览器仍可能直连。
首次连接建议保持 v2rayNG 的默认路由模式,等节点确认可用后再启用自定义分流。若只有某些域名无法访问,先判断是节点握手问题还是 DNS、路由问题:节点列表能完成测试但特定域名解析失败,通常不应继续修改 Public Key;相反,如果日志一直停留在 TLS 或 Reality 握手阶段,则应回到参数核对。
地址: node.example.net
端口: 443
协议: VLESS
加密: none
传输: TCP
安全: Reality
Flow: xtls-rprx-vision(仅按服务端要求)
Server Name: www.example.com
Public Key: 服务端提供的公钥
Short ID: 6f2a9c
指纹: chrome
通过日志定位密钥、SNI 与指纹错误
v2rayNG 的日志入口通常位于主界面菜单、侧边栏或「设置」中的日志选项。不同核心版本的英文报错略有差异,因此不要只看最后一句“连接失败”,应向上查看同一时间点的完整错误段落。建议先清空旧日志,再只启动一次当前节点,这样更容易把错误与本次连接对应起来。
报错: REALITY: handshake failed
原因与解法:Reality 握手没有通过。优先核对 Public Key、Short ID、Server Name 和客户端时间;不要先修改本地 DNS。确保公钥来自当前节点,Short ID 没有多余空格,设备日期和时区也处于自动同步状态。
报错: reality: invalid public key
原因与解法:Public Key 格式错误或复制内容不完整。重新从原始分享信息复制公钥,检查是否混入引号、空格或换行;不要把 Reality 私钥、订阅节点名称或 UUID 填入公钥字段。
报错: EOF during handshake
原因与解法:服务端在握手阶段主动关闭连接,常见原因是 SNI、指纹、Flow 或 Reality 密钥组不匹配,也可能是地址和端口连接到了并非该节点的服务。逐项对照同一条节点参数。
报错: context deadline exceeded
原因与解法:在规定时间内没有完成连接,可能是网络无法到达服务器、端口被拦截、地址解析失败或服务端离线。先测试地址和端口可达性,再判断是否需要检查协议字段。
如果日志显示“证书验证失败”或类似普通 TLS 的证书错误,先确认安全类型是否真的选择了 Reality,而不是 TLS。Reality 不等同于把 TLS 开关打开后再填写一组自定义证书参数;在 v2rayNG 中应选择与当前核心支持方式对应的 Reality 项目。若界面只有较旧的安全选项,可能需要更新客户端或内核,否则即使参数正确也可能无法解析。
Public Key 和 UUID 都是一串字符,怎么区分?
UUID 通常是五段由连字符分隔的标识,例如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;Public Key 是 Reality 公钥,通常是一段连续的 Base64URL 字符串。UUID 填入用户 ID,公钥填入 Reality 的 Public Key 字段。
SNI 必须和服务器地址完全一样吗?
不一定。服务器地址是实际连接入口,SNI 是握手发送的 Server Name。若分享参数分别提供了两者,应按原参数填写;只有在服务端明确要求相同的情况下才保持一致。
指纹选 chrome 仍然无法连接怎么办?
先不要反复切换指纹。确认 Public Key、Short ID、SNI、地址和端口属于同一节点,再检查系统时间、Flow 和 Reality 类型。指纹错误只是可能原因之一,不是所有握手失败都由指纹造成。
导入链接后还需要手动填写所有参数吗?
正常情况下,合法的 VLESS Reality 分享链接会自动填入主要字段。仍应打开编辑页面复核安全类型、传输协议、Flow、SNI、公钥和 Short ID,避免链接解析不完整或客户端版本不兼容。
常见误填场景与修复顺序
配置失败时,最有效的方式是一次只改变一个变量。不要同时更换节点、改端口、改 DNS、切换核心和开启分应用代理,否则即使最后恢复连接,也无法知道真正原因。建议先复制当前配置作为备份,再按照“本地时间—基础地址—认证信息—Reality 参数—传输设置”的顺序复核。
- 先看设备时间:开启系统日期与时间自动同步,确认时区正确。Reality 依赖时间窗口进行握手,设备时间偏差过大时,正确参数也可能失败。
- 再看地址和端口:删除地址前后的空格,不要把协议头或路径写入地址;确认端口是服务端端口,不是 v2rayNG 的本地代理端口。
- 核对 UUID:重新复制用户 ID,检查是否少了一段字符。UUID 错误通常会在服务端认证阶段被拒绝,和 Public Key 错误的日志表现可能不同。
- 核对 Reality 四项:Public Key、Short ID、Server Name、指纹必须来自同一节点。若服务端还要求 Flow,则单独确认
xtls-rprx-vision是否匹配。 - 最后检查传输:Reality 常见组合是 TCP + Reality。不要把 WebSocket 的 Path、Host 或 gRPC 的 Service Name 填入 TCP 节点。
| 现象 | 优先检查 | 暂时不要做的事 |
|---|---|---|
| 一启动就停止 | VPN 权限、核心启动日志、配置格式 | 反复更换 SNI |
| 连接超时 | 地址、端口、网络可达性 | 先修改 UUID |
| 握手失败 | Public Key、Short ID、SNI、时间 | 盲目切换 DNS |
| 连接后马上断开 | Flow、指纹、服务端用户状态 | 同时更换多个字段 |
| 节点可用但网页打不开 | 路由模式、分应用代理、DNS | 重新生成 Reality 公钥 |
如果节点由订阅导入,手动编辑后要留意下一次订阅更新可能覆盖本地修改。测试阶段可以保留一个独立的手动配置,并给节点备注写明“VLESS Reality 手动测试”,避免与自动更新的订阅节点混淆。确认服务端已经更换公钥、Short ID 或 UUID 时,也应重新获取完整节点信息,而不是只替换其中一个字段。
完成后的最终检查清单
当 v2rayNG 已经能够稳定连接后,再进行一次完整复核。首先确认当前选中的是刚刚测试的 VLESS Reality 节点,其次确认 VPN 状态持续运行,最后分别测试浏览器和需要代理的应用。若使用分应用代理,检查目标应用是否被选中;若使用自定义路由,确认规则没有把测试域名强制设为直连。
- 地址没有包含
https://、路径或多余空格。 - 端口与服务端 Reality 入站端口一致,443 只是常见示例。
- 协议为 VLESS,加密方式为
none。 - 传输协议和安全类型分别为服务端要求的 TCP 与 Reality。
- UUID、Public Key、Short ID、Server Name 来自同一条节点配置。
- 指纹按节点说明填写,常见默认值为
chrome。 - Flow 只在服务端启用 Vision 时填写
xtls-rprx-vision。 - 设备日期、时间和时区已自动同步。
- 日志没有持续出现握手失败、认证失败或连接超时。
- 节点测试、实际网页访问和目标应用测试结果一致。
如果你还没有客户端或需要查看其他平台的安装入口,可以前往客户端页面;已经安装 v2rayNG 的用户则应优先保留当前日志和配置截图,再根据本文的字段顺序逐项修改。配置 VLESS Reality 的核心不是记住某个固定模板,而是确保“基础连接参数、VLESS 身份参数、Reality 握手参数”来自同一组服务端配置,并通过日志与实际流量验证每次修改的结果。