VLESS Reality 的优势来自 TLS 握手层的细节控制。也正因为细节多,很多问题看起来像网络波动,实际是客户端字段和服务端字段没有对齐。尤其是同一份订阅同时给 v2rayN、NekoBox、sing-box、Clash Meta 使用时,字段名会变,但含义不能变。

字段对照

字段服务端位置客户端位置检查重点
SNI / serverNameserverNamesserver_name / sni必须在允许列表里
destrealitySettings.dest通常不在客户端目标应真实可达
publicKey由私钥生成public_key / pbk复制不能缺字符
shortIdshortIdsshort_id / sid十六进制长度一致
fingerprint无或默认策略fingerprint / utls多端建议显式设置
flowclient userflow常见为 xtls-rprx-vision

检查顺序

看服务端。destserverNames 应指向同一类真实 HTTPS 目标,端口通常是 443。serverNames 里写了多个名称时,客户端选择的 SNI 必须完全命中其中一个,不能自己加前缀或换根域。

再看客户端。v2rayN、NekoBox、sing-box 对字段命名不同,但 publicKey、shortId、serverName 的值应一致。uTLS fingerprint 建议先用 chrome,排障期间不要在多个客户端间混用随机值。

如果你使用配套订阅线路并导出多客户端配置,建议保留一份原始 Reality 参数表,后续哪端导入异常,就和这张表逐项对照。

操作清单

  • 服务端私钥与客户端 publicKey 是一组。
  • shortId 没有被二维码、换行或备注截断。
  • SNI 在 serverNames 列表内。
  • fingerprint 显式写为 chrome、firefox 或 safari 之一。
  • flow 与客户端支持能力一致。
  • 客户端核心版本支持 Reality 与 uTLS 字段。

常见坑

dest 可达不代表 SNI 正确;浏览器能打开目标站,也不代表 Reality 参数匹配。另一个坑是订阅转换器改写字段名时丢掉 fingerprint,导致桌面端正常、移动端异常。还有人把 serverName 写成 URL,带上 https://,这在多数客户端里都是错误写法。

相关阅读