选内核先看节点要求,而不是客户端名称。普通 VMess、WebSocket 与 TLS 配置可能在两个家族间迁移;带有 REALITY 或 xtls-rprx-vision 的节点则需要匹配 Xray 的实现。本文按功能、字段和排错顺序说明差异,适合正在选择安卓客户端、切换桌面内核或处理“导入成功但无法连接”的用户。
一、Xray、V2Fly 与客户端分别负责什么
V2Ray 最初是代理工具项目及其核心程序的名称。V2Fly 社区继续维护 v2ray-core;Xray-core 于 2020 年从相关代码基础分支发展,随后形成自己的功能与配置演进路线。两者有共同历史,但不是同一个程序的两个显示名称,也不能按名称判断哪个版本更新。
内核负责协议握手、传输、DNS 和路由等实际工作。客户端提供订阅管理、节点编辑、启动开关与日志界面,并把界面中的字段转换成内核配置。节点能否使用,同时取决于客户端能否表达这些字段,以及内核是否实现对应能力。
- v2rayN:桌面客户端。排错时要查看当前选用的内核,不能把客户端版本号当作 Xray 或 V2Fly 的版本号。
- v2rayNG:安卓客户端,本文讨论其 Xray 内核配置路径,适合需要 REALITY、Vision 等特性的节点。
- v2flyNG:安卓客户端,使用 V2Fly 内核;选择前应确认节点的协议、传输及配置格式均在所用版本支持范围内。
例如,节点能出现在列表中,只说明订阅被解析成了记录。直到内核成功加载配置并完成远端握手,才能确认这条链路可用。导入成功不是兼容性测试的终点。
二、功能差异:重点看 Vision 与 REALITY
VMess、VLESS 是代理协议;WebSocket、TCP 是传输方式;TLS、REALITY 属于连接安全层的选择。XTLS Vision 则是配合特定连接组合使用的流控机制。它们不在同一层,不能用“把 VMess 改成 REALITY”描述一次完整配置变更。
| 能力 | Xray 内核 | V2Fly 内核 | 选型检查 |
|---|---|---|---|
| VMess | 支持 | 支持 | 继续核对传输、TLS 与认证字段 |
| 基础 VLESS | 支持 | 相关版本具备支持 | 不能由 VLESS 名称推断支持 Vision |
| WebSocket + TLS | 支持 | 支持 | 核对路径、Host、SNI 和证书 |
| XTLS Vision | 支持对应流控 | 不支持 Xray 的 Vision 流控 | 检查 xtls-rprx-vision |
| REALITY | 支持 | 不支持 Xray 的 REALITY | 检查安全层与服务端公钥参数 |
| DNS 与规则路由 | 具备 | 具备 | 具体字段与配置格式需要分别核对 |
Vision 的常见字段值是 xtls-rprx-vision。它不是旧式 XTLS 配置的别名,也不是任意传输都能附加的加速选项。常见部署是 VLESS、TCP 与 TLS 或 REALITY 的组合,客户端必须与服务端的流控设置对应。
REALITY 也不等于关闭证书验证。它采用不同的握手与身份验证机制,客户端通常需要服务端公钥、允许的服务器名称、short ID 和指纹等信息。不能把普通 TLS 节点的安全层改成 REALITY 后期待直接连接。
结论:按节点必需功能选择内核
节点参数出现 security=reality 或 flow=xtls-rprx-vision 时,优先确认 Xray 配置链路;普通 VMess + WebSocket + TLS 则应先检查字段一致性,不必仅为名称差异切换内核。
三、两类节点的关键字段对照
下面两张卡片用于核对字段关系,不是可直接导入的节点。示例端口和路径只说明它们各自的用途;真实值必须从节点提供方取得。服务端监听 443 并不能证明它使用了 TLS,更不能证明它使用了 REALITY。
VLESS + REALITY + Vision
- 传输
- TCP
- 安全层
- REALITY
- 流控
- xtls-rprx-vision
- 身份字段
- UUID、服务端公钥、short ID
- 握手字段
- serverName、fingerprint
使用支持该组合的 Xray 内核,并逐项对应服务端参数;short ID 是否为空也由服务端允许值决定。
VMess + WebSocket + TLS
- 传输
- WebSocket
- 安全层
- TLS
- 认证
- UUID;现代配置通常使用 alterId=0
- 路径示例
- /ws,大小写与服务端一致
- 域名字段
- WebSocket Host 与 TLS serverName
两个内核家族均有相应能力;Host、连接地址和证书名称用途不同,不应不加区分地互相覆盖。
REALITY 分享链接里的 pbk 通常承载服务端公钥,sid 对应 short ID,sni 对应服务器名称,fp 对应客户端指纹标识。分享链接字段名、客户端编辑框名称和原生 JSON 键名未必相同,应由支持该格式的客户端正确映射。
四、配置兼容性:分享链接不等于原生 JSON
同一节点可以表现为分享链接、订阅条目或原生 JSON,但三者不是等价文件。分享链接主要描述节点参数;原生配置还可能包含本地入站、DNS、路由、日志与多个出站。把一个完整配置压缩成节点链接,往往无法保留全部行为。
- 先区分配置来源。
vmess://与vless://是分享链接前缀;以对象结构组织的 JSON 可能是完整内核配置,也可能只是服务提供方的接口响应。 - 再识别 JSON 方言。V2Fly 的不同配置格式以及 Xray 的字段演进不能混为一谈。即使顶层都有
inbounds和outbounds,嵌套字段仍可能不同。 - 逐层比较出站。先看协议与用户认证,再看传输、安全层和流控。缺少 REALITY 的专用设置时,不要用普通 TLS 设置补齐。
- 最后迁移环境设置。检查本地监听地址、端口、DNS、路由标签和规则顺序。节点握手成功但分流异常,通常不应继续改 UUID 或公钥。
原生 JSON 从 Xray 换到 V2Fly,不能仅替换可执行文件。某个内核可能直接拒绝未知取值,也可能在特定解析路径下忽略部分字段;两种情况都不能算迁移成功。应先通过目标内核的配置检查,再执行一次真实代理请求。
xray version
xray run -test -config client.json
v2ray version
以上命令用于桌面命令行环境:前两行分别查看 Xray 版本与检查已有的 client.json,第三行查看 V2Fly 版本。文件需要先准备好;不同发行包的命令参数可能不同,应先查看 help。配置检查只能发现解析及部分初始化问题,不能代替网络连接验证。
五、v2rayNG 与 v2flyNG 怎么选
安卓端按节点能力选客户端,比按名字猜测更可靠。若提供方明确要求 VLESS + REALITY + Vision,选择 v2rayNG 的 Xray 路径,并确认客户端及内置内核能处理订阅中的字段。若已有 V2Fly 原生配置,则先确认 v2flyNG 的配置入口和内核版本是否适配该格式。
- 节点要求 REALITY 或 Vision:使用 v2rayNG,并核对安全层、公钥、short ID、指纹与流控是否完整。
- 现有节点是 VMess + WebSocket + TLS:两者都可能适用。保留能正确导入、握手和分流的组合,切换前备份订阅及本地设置。
- 依赖定制 DNS 或路由:优先检查客户端实际生成的配置,不以“节点能导入”作为完整兼容的依据。
- 桌面使用 v2rayN:分别记录客户端版本和选用内核版本。切换内核后重新启动连接,避免沿用旧日志作判断。
没有统一的“Xray 一定更快”或“V2Fly 一定更稳”。节点位置、网络丢包、服务器负载、传输方式和路由都会影响体验。比较内核时,应保持同一服务器、同一协议组合、同一测试目标及相近时段;否则测到的差异可能来自线路,而不是内核。
六、导入成功但无法连接的排查顺序
先把“本地代理入口”和“远端服务器端口”分开。下面是一个排错环境的数字示例,不是所有客户端的默认值,也不是速度测试结果。本地端口以实际设置为准,远端端口以节点资料为准。
- 确认正在运行的内核。启动当前节点后读取最新日志,记录内核家族、版本和第一条错误。不要仅查看安装包名称。
- 处理配置加载失败。出现未知协议、安全层或流控取值时,先核对功能支持;如果内核尚未成功启动,反复更换 DNS 没有作用。
- 处理网络不可达。确认服务器地址可解析、远端端口正确、网络允许建立连接。TCP 端口可达只证明传输入口可访问,不证明认证成功。
- 处理握手错误。普通 TLS 检查设备时间、serverName 和证书链;REALITY 检查服务端公钥、short ID、允许的服务器名称及指纹设置;Vision 再核对流控。
- 处理请求未走代理。桌面检查系统代理或应用代理配置,安卓检查 VPN 授权及分应用规则。连接已建立但目标未经过代理时,继续改协议字段会扩大问题。
桌面端若确认本地 SOCKS 入口确实是 127.0.0.1:10808,可用下面的命令明确指定代理访问本站。socks5h 会将目标域名交给 SOCKS 代理侧解析,便于与本地 DNS 路径区分。
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 20 -I https://v2rayid.com/
命令有响应,只能说明这个目标在当前规则下能经本地入口完成请求;如果内核规则把它直连,仍不能证明远端代理出口正常。应结合访问日志确认出站,再用可信的出口 IP 查询服务核对结果。单次超时也不能直接判定内核不兼容,要回看失败发生在本地连接、远端握手还是目标访问阶段。
结论:一次只改一层
先让内核加载配置,再验证远端握手,最后检查 DNS 与路由。每次只改一个字段并保留前后日志,才能分清是功能缺失、参数错误还是流量没有进入代理。
七、常见兼容性问题
VLESS 节点一定要用 Xray 吗?
不一定。基础 VLESS 与 VLESS + REALITY + Vision 不是同一套能力要求。应查看传输、安全层和 flow,而不是只看链接以 vless:// 开头。若带有 Xray 专用特性,就应选择对应实现。
开启 allowInsecure 能修复 REALITY 错误吗?
不能把它当作修复方法。跳过普通 TLS 证书验证既不能补上缺失的 REALITY 支持,也不能纠正错误公钥、short ID 或流控。应恢复正常验证设置,依据日志核对连接所需参数。
切换内核后,国内外分流会保持不变吗?
不保证。路由标签、规则顺序、域名解析策略和地理数据文件都可能影响结果。迁移时先保留一条明确的代理测试路径,确认节点可用后再逐步恢复原有规则,并检查每类目标的实际出站。