Xray 内核与 V2Fly 内核差异对比:XTLS、REALITY 与协议兼容性

梳理 Xray 与 V2Fly 两条内核分支的由来,对比 XTLS、REALITY 等特性支持情况与配置兼容性,说明 v2rayN、v2rayNG、v2flyNG 各自搭载的内核。

本文速览

本文面向需要选择客户端、核对订阅兼容性或迁移服务器配置的用户。核心判断是:常规 VMess、VLESS、WebSocket 与 TLS 配置在两条内核分支之间存在较大交集,但 XTLS Vision、REALITY 以及部分扩展字段属于 Xray 路线;读完可根据节点协议、客户端类型和日志结果确定应使用的内核。

两条内核分支的关系与定位

V2Fly 内核通常指 v2ray-core 的社区延续版本,负责解析入站、出站、路由、DNS、传输层和策略配置。Xray-core 则从早期 v2ray-core 代码基础上发展出独立分支,保留大量相近的配置结构,同时继续扩展 VLESS、XTLS、REALITY 等能力。两者不是同一程序的两个界面主题,也不能仅通过修改客户端名称完成切换。

桌面和安卓客户端主要承担订阅管理、节点编辑、系统代理控制与日志展示,真正建立连接和执行路由的是内核。相同的服务器地址、端口和用户标识,交给不同内核后能否连接,还取决于协议字段、传输方式、安全层和内核版本是否匹配。

25.3.6
本文 Xray 配置基线
5.28.0
本文 V2Fly 配置基线
10808
常见本地 SOCKS 端口
10809
常见本地 HTTP 端口

上面的版本号用于说明本文核对配置时采用的代际,不代表下载中心显示的最新版本。内核更新可能新增字段、废弃旧别名或调整校验规则,迁移配置时应先确认实际运行版本,再检查日志中的版本首行。

Xray 内核

推荐

覆盖常用 VMess、VLESS、Trojan、SOCKS 与 HTTP 出站,并提供 XTLS Vision、REALITY 等 Xray 路线能力。

适合:VLESS Vision、REALITY 节点与日常主力配置

V2Fly 内核

延续 v2ray-core 配置体系,适合常规 VMess、VLESS、WebSocket、gRPC、TLS 与既有路由配置。

适合:标准协议节点、既有 V2Fly 服务端与配置维护

结论:先识别节点安全层,再考虑内核偏好

分享链接或订阅中出现 security=reality、flow=xtls-rprx-vision 时应使用 Xray 内核;只有 VMess 或标准 VLESS 配合 TLS、WebSocket、gRPC 时,才进入两者都可能兼容的范围。

XTLS Vision 与 REALITY 为什么构成主要差异

XTLS 是 Xray 路线中的传输优化体系,当前节点配置里更常见的是 VLESS 搭配 xtls-rprx-vision 流控。客户端和服务端必须同时理解对应的 flow 值;如果服务端要求 Vision,而客户端内核忽略或不认识该字段,连接通常会在握手阶段失败,而不是自动降级为普通 TLS。

REALITY 字段必须完整匹配

REALITY 是 Xray 的安全与握手方案。一个可用的客户端配置通常需要服务器地址、端口、用户标识、serverName、公钥、shortId、fingerprint 等信息。订阅缺少公钥或 shortId 不匹配时,即使地址和端口能够建立 TCP 连接,内核仍会拒绝后续握手。

能力或配置 Xray-core V2Fly 内核 迁移判断
VMess + WebSocket + TLS 支持 支持 重点核对路径、Host 与 TLS 名称
标准 VLESS + TLS 支持 支持 仍需核对传输层字段与服务端版本
VLESS + XTLS Vision 支持 不按 Xray Vision 配置处理 保留 Xray 内核
VLESS + REALITY 支持 不兼容该套 Xray 字段 不能直接改名转换
域名与 IP 路由规则 支持 支持 检查规则资源与字段名称

一个典型的 Xray REALITY 出站片段

{
  "protocol": "vless",
  "settings": {
    "vnext": [
      {
        "address": "198.51.100.20",
        "port": 443,
        "users": [
          {
            "id": "11111111-2222-3333-4444-555555555555",
            "encryption": "none",
            "flow": "xtls-rprx-vision"
          }
        ]
      }
    ]
  },
  "streamSettings": {
    "network": "tcp",
    "security": "reality",
    "realitySettings": {
      "serverName": "www.example.com",
      "fingerprint": "chrome",
      "publicKey": "示例公钥仅说明字段位置",
      "shortId": "6ba85179e30d4fc2"
    }
  }
}

这段代码只用于辨认字段层级,地址、用户标识和公钥均不是可连接节点。将其交给不支持 REALITY 的内核时,常见结果是配置解析错误、未知安全类型或启动失败。正确处理方式是换回匹配的 Xray 内核,而不是删除报错字段后继续连接。

协议相同不代表配置可以原样互换

Xray 与 V2Fly 共享许多历史配置概念,例如 inbounds、outbounds、routing、dns 和 policy。基础 VMess 出站往往容易迁移,但完整配置还可能引用分支特有字段、规则资源、传输参数或实验功能。内核能读入 JSON,只能证明语法和字段校验通过,不能证明流量已经按预期分流。

客户端会二次生成运行配置

订阅场景还多了一层客户端转换。订阅内容可能是分享链接列表,也可能是服务端生成的结构化数据;v2rayN、v2rayNG 和 v2flyNG 会先解析订阅,再生成内核需要的运行配置。因此,同一条订阅在两个客户端里显示相同节点名称,最终生成的 JSON 仍可能不同。

两类节点的内核安排

含 Xray 专用字段
  • 桌面端使用 v2rayN 的 Xray 内核
  • 安卓端使用搭载 Xray 内核的 v2rayNG
  • 保留 flow、publicKey、shortId 与 fingerprint
  • 服务端与客户端同时升级后再启用新字段
标准 VMess 或 VLESS
  • 按服务端实际内核选择客户端
  • 核对 WebSocket 路径、Host 和端口
  • 核对 TLS 的 serverName 与系统时间
  • 迁移后重新测试 DNS 和路由分流

协议名称只是第一层条件,安全层、传输层和流控字段全部匹配后,配置才具备迁移条件。

迁移配置的检查顺序

  1. 查看节点协议是 VMess、VLESS 还是其他类型,不要仅根据节点备注判断。
  2. 检查 security、flow、network、serverName、Host、path 等关键字段。
  3. 确认目标客户端实际调用的内核与版本,记录启动日志首行。
  4. 先建立单节点连接,再测试域名解析、直连规则和代理规则。
  5. 最后导入完整订阅,避免批量节点掩盖单个配置错误。

结论:迁移测试要同时观察连接与路由

浏览器能打开一个网页并不代表迁移完成。至少应测试一个代理域名、一个直连域名和一次 DNS 查询,并确认日志中的出站标签与预期规则一致。

v2rayN、v2rayNG 与 v2flyNG 分别使用什么内核

v2rayN 是桌面客户端,当前使用场景通常以 Xray 内核处理 VLESS、Vision 和 REALITY 节点。客户端负责节点列表、订阅更新、系统代理和路由设置,内核进程负责实际连接。排查时应区分“客户端界面版本”和“内核版本”,两者不是同一个版本号。

移动客户端按内核路线选择

v2rayNG 是安卓客户端,搭载 Xray 内核,适合与桌面端共享包含 REALITY 或 Vision 节点的订阅。v2flyNG 则面向 V2Fly 内核配置,更适合明确使用 V2Fly 服务端、标准 VMess/VLESS 与既有 v2ray-core 配置体系的环境。

订阅里同时有普通节点和 REALITY 节点,应该选哪个内核?

优先使用 Xray 内核。它可以处理常规 VMess、标准 VLESS 以及 Xray 专用节点,避免切到 V2Fly 后丢失 REALITY 和 Vision 配置。

同一个 VMess 节点在两个内核里都能连接,速度会固定不同吗?

不会。速度还受服务器负载、线路丢包、拥塞控制、TLS、传输层和本地网络影响。应在同一时间段、同一节点和相同路由规则下重复测试至少三次。

v2flyNG 能直接导入带 REALITY 的订阅吗?

订阅解析器可能显示节点,但 V2Fly 内核不能据此执行 Xray REALITY 配置。应改用 v2rayNG,并重新导入原始订阅以保留完整字段。

更换内核后网页打不开,先看哪里?

先确认核心进程已经启动,再核对本地 SOCKS 或 HTTP 端口是否仍为 10808、10809。随后检查系统代理端口与日志中的配置解析、DNS、握手错误。

只复制服务器地址和用户标识可以迁移 VLESS 吗?

不够。还要复制端口、传输方式、安全层、serverName、flow、路径、Host,以及 REALITY 场景中的公钥、shortId 和 fingerprint。

按节点类型选择内核与排查连接

如果订阅明确包含 VLESS、REALITY、Vision,桌面端选择 v2rayN,安卓端选择 v2rayNG,通常是路径最短的组合。若服务端明确运行 V2Fly,节点使用标准 VMess 或 VLESS,并且已有经过验证的路由配置,则可使用 v2flyNG 保持同一内核体系。

超时不等于内核不兼容

不要仅凭“节点超时”判断协议不兼容。超时也可能来自地址不可达、端口被阻断、系统时间错误、DNS 返回异常或服务器未运行。内核不兼容更常见的信号是 unknown field、unsupported security、failed to parse config、invalid flow 等配置或握手错误。

日志现象 优先检查 处理路径
unknown field 或 unsupported security 内核分支与配置字段 确认是否把 REALITY 配置交给 V2Fly
invalid flow flow 值与协议组合 核对是否为 VLESS 与 xtls-rprx-vision
connection refused 服务器端口和进程 确认地址、端口及服务端监听状态
context deadline exceeded 线路、DNS 与握手参数 分别测试地址可达性和 serverName
本地端口占用 10808、10809 等监听端口 关闭重复核心进程或调整客户端端口

五步完成客户端侧核对

  1. 完全停止当前连接,确认旧内核进程已经退出。
  2. 打开客户端设置,记录核心名称、核心版本、本地 SOCKS 端口和 HTTP 端口。
  3. 只选择一个节点启动,查看日志是否完成配置载入与本地监听。
  4. 开启系统代理后访问目标域名,核对日志中命中的路由规则和出站标签。
  5. 单节点验证通过后再恢复订阅自动更新与完整路由规则。

内核选择的最终判断

Xray 与 V2Fly 的共同部分足以覆盖大量基础代理配置,但两者已经是独立演进的内核。Xray 的主要识别点是 VLESS、XTLS Vision 与 REALITY 组合;V2Fly 的价值则在于延续其自身配置体系和服务端部署路径。不存在把所有节点统一改写成某一种 JSON 后就必然兼容的规则。

最终按字段、内核与日志判断

对普通用户而言,最可靠的判断顺序是节点字段、客户端内核、服务端实现、运行日志。桌面使用 v2rayN、安卓使用 v2rayNG 时,可覆盖 Xray 专用节点;明确维护 V2Fly 环境时,再使用 v2flyNG。更换内核后必须重新检查订阅、DNS、路由和本地代理端口。

下载 v2rayN 查看四个平台安装包