· 选型对比 · 约 9 分钟

Xray 内核与 V2Fly 内核的区别:版本分叉、协议支持与客户端取舍

梳理 Project V 生态中 V2Fly 与 Xray 的分叉由来,对比 VLESS、REALITY 等协议支持差异,说明 v2rayNG 与 v2flyNG 各自适合谁。

本文速览

选内核先看节点参数,再看客户端。VLESS 不等于 REALITY,也不是 Xray 独占的协议名称;包含 REALITY 或 xtls-rprx-vision 的配置应按 Xray 支持情况选择。已有 VMess 配置能稳定使用时,不必只为更换名称迁移。下文按项目关系、协议组合、安卓客户端和迁移检查顺序说明判断方法。

版本分叉:Xray 与 V2Fly 不是同一内核的两个开关

Project V 是相关工具与协议所处的项目生态,V2Ray 是其中常见的核心软件名称。V2Fly 社区延续维护 v2ray-core;Xray-core 则在 2020 年从 V2Ray 代码基础分叉发展。两者共享一部分历史和配置概念,但此后的功能演进、发布节奏与配置字段并不完全一致。

因此,“V2Ray 客户端”不能直接说明正在运行哪款内核。客户端负责订阅管理、节点选择和界面操作,内核负责建立连接、处理入站出站与执行路由。客户端能显示某个节点名称,也不代表它实际生成的配置能被当前内核接受。

协议支持:先拆开 VLESS、REALITY 与 Vision

节点兼容性至少要看四层:代理协议、底层传输、传输安全和协议附加行为。VMess、VLESS 属于代理协议;WebSocket 属于传输方式;TLS、REALITY 属于传输安全相关配置;xtls-rprx-vision 是特定组合下使用的 flow 值,不能当成一个独立节点协议。

配置项目 Xray V2Fly 选择时检查
VMess + WebSocket + TLS 常见支持组合 常见支持组合 地址、端口、路径、Host、TLS 服务名
VLESS 支持,需匹配完整配置 有 VLESS 实现,不能据此推定支持 Xray 扩展 传输、安全层、flow 和版本要求
REALITY 在受支持版本与组合中使用 不按 Xray REALITY 配置兼容处理 服务名、公钥相关参数、shortId
xtls-rprx-vision 按 Xray 对应组合与版本使用 不能直接照搬该 flow 服务端 flow 与客户端传输组合

例如,一个 VLESS 节点同时包含 security=reality 与 flow=xtls-rprx-vision,应选择支持该组合的 Xray 内核。反过来,只有 vless:// 前缀并不能证明节点必须使用 REALITY,也不能证明任何 VLESS 客户端都能使用它。

客户端取舍:安卓按节点要求选,桌面先核对内核

在 Android 上,v2rayNG 与 v2flyNG 的关键区别是所接入的内核路线。需要 Xray 特性的节点优先选 v2rayNG;已经围绕 V2Fly 配置使用、且没有依赖 Xray 特定字段的环境,可以继续使用 v2flyNG。这里的推荐针对配置兼容范围,不是对所有网络环境的性能排名。

v2rayNG · Xray 内核

推荐

安卓节点包含 REALITY、Vision 等 Xray 特性时,优先选择能导入对应字段的 v2rayNG 版本。导入完成后仍需核对节点详情与启动日志。

适合:Android 使用 Xray 配置、订阅中含 REALITY 节点。

v2flyNG · V2Fly 内核

适合已验证可用的 V2Fly 配置。VMess 等双方共有的协议组合,应按实际传输字段判断,不需要仅因分叉关系就更换客户端。

适合:Android 延续 V2Fly 配置、保持已有路由与使用习惯。

桌面端使用 v2rayN 时,先确认当前安装包、配置类型及客户端版本提供哪些内核选项。不要假设所有版本都在同一位置提供相同切换按钮。应用设置之后,重新启动所选配置,再从日志确认实际加载的内核;下载目录里存在某个内核文件,不代表当前连接正在调用它。

两种配置环境的选择方案

节点依赖 Xray 特性
  • 桌面端:v2rayN 使用受支持的 Xray 配置。
  • 安卓端:v2rayNG 导入同一来源的兼容订阅。
  • 核对 REALITY 参数与 flow,保留提供方原值。
已有 V2Fly 配置可用
  • 安卓端:v2flyNG 保留已验证的节点。
  • 桌面端:按 v2rayN 当前版本支持情况处理配置。
  • 迁移前分别保存订阅、路由与 DNS 设置。

共用订阅只代表配置来源相同;两端的字段解析、路由和 DNS 设置仍需分别核对。

切换检查:本地端口、订阅转换与路由一起核对

更换内核后网页打不开,不一定是协议不兼容。旧客户端可能仍占用本地监听端口,浏览器也可能还指向旧端口。下面的两个数字只用于演示一组 SOCKS 与 HTTP 入口,不是所有客户端或版本的默认值;实际使用以当前设置和启动日志为准。

10808
示例 SOCKS 监听端口,地址为 127.0.0.1
10809
示例 HTTP 监听端口,须与应用代理设置一致
  1. 保存原配置。记录订阅来源、所选节点、DNS、路由和本地端口。订阅链接可能包含访问凭据,备份时不要公开分享。
  2. 停止旧连接。退出另一客户端的代理连接;Android 上先停止原 VPN 连接,再启动目标客户端,避免把连接接管问题误判成协议问题。
  3. 重新导入订阅。确认提供方输出的格式适配目标客户端。不要直接把一款内核的完整 JSON 当作另一款内核的通用配置。
  4. 核对实际监听。如果应用指向 127.0.0.1:10809,日志却只显示另一 HTTP 端口,应修正应用代理设置,而不是反复换节点。
  5. 分别验证路由。先确认目标连接能建立,再检查应该直连和应该代理的请求是否走向预期出口,最后恢复自定义规则。

订阅更新成功只表示内容已获取并完成客户端解析,不保证每个字段都被完整保留。如果迁移后节点详情缺少服务名、WebSocket 路径或 REALITY 参数,应向配置提供方索取适配格式,而不是凭名称补写参数。自定义 DNS、域名匹配策略和规则集也不会因为节点列表一致就自动等效。

日志判断:启动失败与连接失败分开处理

内核能启动,只说明配置至少通过了当前版本的加载检查。连接失败可能发生在域名解析、TCP 建连、TLS 或 REALITY 握手等阶段。先定位阶段,比直接判断“换了内核所以速度变差”更有用。

日志线索 优先判断 下一步操作
unknown field 或配置解析错误 字段、格式或内核版本不匹配 核对导入格式、实际内核和出错字段,不先删除安全参数
address already in use 本地监听端口被占用 停止重复客户端,或修改监听端口并同步应用代理设置
timeout 需按日志上下文定位超时阶段 核对服务器地址、端口与网络,再检查握手参数
握手相关错误 安全层参数或服务端配置不匹配 核对服务名、时间和对应认证参数,向提供方确认配置

选型问答:不按内核名称推断速度与兼容性

订阅只有 VMess,需要换成 Xray 吗?

不必仅为名称更换。先核对当前传输方式、TLS 与路由是否正常。已有 V2Fly 配置可用时可以保留;确需迁移时,用同一节点逐项比较功能,避免同时修改 DNS 和分流规则。

v2flyNG 导入 VLESS 后不能连接,怎么查?

打开节点详情,查看是否带有 REALITY 或 xtls-rprx-vision。若依赖这些 Xray 特性,改用支持该组合的 v2rayNG,并重新从提供方导入配置,不要只删除无法识别的字段。

同一个节点,Xray 一定比 V2Fly 快吗?

不能这样判断。应固定服务器、传输组合、接入网络与测试目标,分别检查连接成功率和实际传输表现。节点路径、服务端负载以及 DNS 差异,都可能比内核名称更影响结果。

换内核后要重新开启 TUN 吗?

先确认原来的流量接入方式。普通浏览器使用系统代理时,可先保持 TUN 关闭验证连接;确实需要接管不读取系统代理的应用,再按客户端要求启用 TUN 并检查权限与路由。

最终选择可以压缩成三步:先确认节点有没有依赖 Xray 特性,再选择能完整表达配置的客户端,最后核对日志与本地流量入口。V2Fly 和 Xray 的共同历史不能替代兼容性检查,客户端界面相似也不意味着导入后的配置完全一致。

v2rayN下载