2026-09-08 · 内核选型 · 约 9 分钟

Xray 内核与 V2Fly 内核区别:v2rayNG 与 v2flyNG 怎么选

梳理 Project V、V2Fly 与 Xray 的分支关系,对比两大内核在协议支持与配置写法上的差异,给出安卓端客户端的选型建议。

本文速览

安卓端先按节点参数选内核,再按配置来源选客户端。需要 VLESS、REALITY 与 Vision 组合时,优先检查 v2rayNG 所带 Xray 的支持情况;已有按 V2Fly 文档维护的配置时,可选 v2flyNG。本文区分客户端、内核与订阅三个层次,给出字段检查、配置片段和切换验证步骤,避免把“导入成功”误判为“连接兼容”。

Project V、V2Fly 与 Xray 的关系

Project V 是围绕网络代理工具形成的项目体系,V2Ray 是其中的核心软件。V2Fly 延续 V2Ray 的社区开发;Xray 从 V2Ray 分支发展,随后形成自己的协议扩展与实现路线。两者具有共同的配置历史,但并非只更换名称的同一份程序,也不能仅凭配置文件都叫 config.json 就相互替换。

客户端承担界面、订阅管理、系统网络接管等工作;内核负责解析配置、建立连接与执行路由。v2rayNG 在安卓端集成 Xray,v2flyNG 在安卓端集成 V2Fly。桌面端的 v2rayN 则需要结合实际版本、节点类型与内核设置判断使用哪套实现,不能把桌面端可选内核的体验直接套到两个安卓客户端上。

层次具体对象主要职责
项目与实现V2Fly、Xray维护协议实现、配置解析与连接处理逻辑。
安卓客户端v2rayNG、v2flyNG管理节点和订阅,申请 Android VPN 权限,启动所带内核。
桌面客户端v2rayN管理桌面代理入口、节点与内核运行配置。
连接配置VMess、VLESS、传输与 TLS 参数描述客户端如何与服务端协商,必须按实际内核能力生成。

两条开发路线的版本号也不能横向比较大小。应用版本与内核版本应分别记录:应用升级可能更新界面而没有切换内核系列,节点连接报错则可能与所带内核支持的字段有关。排查时保留两项版本信息,比单独说“装了最新版”更有用。

协议支持:按完整连接组合判断

VMess、VLESS 是代理协议;WebSocket、gRPC 等属于传输层选项;TLS、REALITY 涉及连接安全设置。选型需要同时核对这些层次。只看到一个 vless:// 链接,还不足以断言所有支持 VLESS 的实现都能连接同一台服务端。

Xray 内核 / v2rayNG

推荐

对明确要求 VLESS、REALITY、Vision 的节点,优先选用这条路线,并核对客户端所带 Xray 是否满足服务端要求。推荐依据是协议组合匹配,不代表所有网络下都更快。

适合:节点说明指定 Xray,或使用 VLESS + REALITY + Vision。

V2Fly 内核 / v2flyNG

适合继续使用按 V2Fly 文档编写、已经验证可用的配置。常见 VMess 与 WebSocket/TLS 配置仍需逐项匹配传输、路径和证书参数,不能省略核对。

适合:现有配置以 V2Fly 为基准,且没有依赖 Xray 专属能力。

节点描述重点检查选型判断
VMess + WebSocket + TLS用户 ID、服务端口、路径、Host 与 TLS 服务器名称。两条路线均有相应实现;以具体版本和配置验证为准。
VLESS + REALITY + Visionflow、security、服务端名称、密钥相关参数与短 ID。优先 v2rayNG / Xray,不当作可直接迁移到 V2Fly 的通用配置。
完整自定义 JSON配置格式、协议字段、传输字段和资源文件路径。按生成配置的目标内核选择,不按文件扩展名判断。

结论:先匹配服务端,再比较体验

先记录“协议 + 传输 + 安全层 + flow”四项信息。只要其中一项超出目标内核能力,就先解决兼容问题,不用延迟测试来代替字段检查。

config.json:相似结构与迁移边界

常见配置包含 inbounds、outbounds 与 routing。入站接收本地应用流量,出站决定如何连接目标,路由决定选用哪个出站。下面是采用两者常见传统 JSON 结构的本地 SOCKS 直连示例,仅用于理解字段,不包含远端代理节点,也不会建立加密代理连接。

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "local-socks",
      "listen": "127.0.0.1",
      "port": 10808,
      "protocol": "socks",
      "settings": {
        "auth": "noauth",
        "udp": true
      }
    }
  ],
  "outbounds": [
    {
      "tag": "direct",
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "block",
      "protocol": "blackhole",
      "settings": {}
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "ip": ["127.0.0.0/8"],
        "outboundTag": "direct"
      }
    ]
  }
}

这里的 listen 限制本地监听范围,tag 是配置内部的引用名称,outboundTag 必须与出站标签对应。示例把直连出站放在第一项,因此未命中规则的流量也使用直连。迁移时如果只复制路由,却没有复制被引用的出站,结果可能是配置加载失败,而不是自动补齐缺失节点。

订阅导入与安卓 VPN 接管

订阅是节点信息的分发方式,不是内核协议。相同订阅地址能在两个客户端中添加,不代表两端能识别所有节点字段;某些转换过程还会丢失传输参数。遇到导入后节点数量相同但无法连接,应打开节点编辑信息,对照原始连接参数检查,而不是反复更新订阅。

迁移方案:订阅与网络规则分别验证

保留现有客户端
  • 记录应用与内核版本。
  • 备份节点参数和订阅地址。
  • 记录分应用名单、DNS 与路由模式。
  • 保留一组已验证可用的配置。
验证目标客户端
  • 先导入一个节点,逐项核对字段。
  • 停止原客户端后再启动 VPN 服务。
  • 先验证连接,再恢复分应用与分流规则。
  • 订阅更新后重新检查关键参数。

同一订阅只解决节点分发;分应用名单、DNS 和路由不会因此自动保持一致。

Android VPN 接管与代理内核是两个层次。客户端通过系统 VPN 接口接收流量,再交给内部处理链路;这不意味着远端节点使用某种传统 VPN 协议。同一用户或配置文件内,通常只能有一个活动 VPN 服务。切换 v2rayNG 与 v2flyNG 时,先停止前者,再授权并启动后者,避免系统撤销原服务后被误认为连接随机中断。

  1. 首次启动时确认系统 VPN 授权,随后观察客户端是否出现启动错误。
  2. 需要排除个别应用时,查看客户端的分应用代理设置,核对名单采用的是包含还是绕过逻辑。
  3. 若退出界面后连接停止,检查 Android 的后台运行限制和电池优化设置,不要先改服务端协议。
  4. 测试期间暂停其他使用 VPN 接口的工具,减少网络接管冲突。

连接失败:按端口、握手、DNS 的顺序排查

内核选型不能替代网络排查。连接超时可能来自服务端口不可达,TLS 错误可能来自服务器名称或设备时间,网页打不开也可能只是 DNS 路径不符合预期。下面三个数字是检查锚点,不是客户端默认值声明,也不是性能测试结果。

10808
本文示例的本地 SOCKS 监听端口
443
常见 TLS 服务端口,实际以节点为准
1
每次仅改变一个变量,便于定位原因
现象优先检查下一步操作
启动立即失败未知字段、配置格式、端口占用。读取第一条明确错误,核对内核版本与字段来源。
连接远端超时地址、端口、当前网络与服务端监听。保持节点不变,分别验证不同网络,避免同时改 DNS 和协议。
TLS 或认证失败设备时间、服务器名称、用户 ID、安全层与密钥参数。与服务端配置逐项核对,不以关闭证书验证作为修复。
部分域名失败DNS 解析路径、IPv6 可达性、路由规则顺序。固定测试域名,检查解析结果与命中的出站。
只有某个应用失败分应用名单、UDP 需求与应用自身网络行为。先确认该应用是否进入代理接管范围。

性能比较也要控制条件:使用相同网络、服务端、时间段和测试目标,分别记录连接成功率、延迟与持续传输表现。一次延迟探测无法证明哪种内核更省电或吞吐更高;移动网络切换、设备温度和后台任务都可能改变结果。诊断日志对外分享前,应删除订阅地址、用户标识与密钥等连接信息。

v2rayNG 与 v2flyNG 的最终选择

如果服务端明确提供 Xray 专用连接组合,选择 v2rayNG 更直接。如果已有长期使用的 V2Fly 配置,且没有新增协议需求,选择 v2flyNG 能减少迁移变量。两者都应以实际连接和字段兼容为判断依据,不必为了内核名称更换一套已验证的配置。

执行顺序:一个节点、一套规则、一次切换

先在目标客户端验证一个节点,再添加订阅和分流规则。保留原配置直到目标方案完成实际访问测试,发生问题时才能快速恢复并定位差异。

下载客户端