选内核先看节点参数,不先看客户端名字。使用 VLESS + REALITY 或 XTLS Vision 时,优先选择支持相应功能的 Xray 方案;已有 V2Fly 配置且连接正常时,不必只为更换名称迁移。本文把客户端、内核、协议与传输拆开说明,并给出桌面与安卓的选择步骤、参数检查项和故障排查顺序。
分支来源:Xray 与 V2Fly 分别是什么
Project V 是一组网络通信工具与相关规范的项目生态,V2Ray 是其中的核心项目。V2Fly 社区继续维护 v2ray-core;Xray-core 则在 2020 年从 v2ray-core 分出,随后沿自己的协议与传输实现路线发展。两者有共同代码历史,但不是同一个程序的两种皮肤,也不能把各自的版本号直接横向比较。
内核负责建立连接、处理协议、执行路由和 DNS 规则。客户端负责显示节点、保存订阅、提供设置入口,并把配置交给内核运行。因此,界面上能看到某个字段,不等于实际启动的内核一定理解它;反过来,内核具备某项能力,也需要客户端正确生成对应配置。
- v2rayN:桌面客户端。可用内核及其选择入口取决于安装包和配置类型,排查时要确认本次连接实际启动了哪个内核。
- v2rayNG:安卓客户端,使用 Xray 内核。适合需要 Xray 特有能力的节点配置。
- v2flyNG:安卓客户端,使用 V2Fly 内核。适合已有 V2Fly 配置与相应维护流程的环境。
协议支持:VLESS 不等于 REALITY
VMess、VLESS、Trojan、Shadowsocks 属于代理协议层;TCP、WebSocket、gRPC 属于传输方式;TLS 与 REALITY 涉及连接的安全层与握手。XTLS Vision 则是 Xray 中与特定组合配合使用的流控机制。把这些名词合并成一个“协议名”,容易在更换内核时漏掉真正的兼容性条件。
| 配置或能力 | Xray | V2Fly | 选择前检查 |
|---|---|---|---|
| VMess | 支持 | 支持 | 认证参数、传输方式、TLS 设置需匹配 |
| 基础 VLESS | 支持 | 支持基础实现 | 不能据此推断支持全部 Xray 扩展 |
| VLESS + REALITY | 支持 | 不支持 Xray 的 REALITY 配置 | 服务名、公钥、短标识及相关客户端参数 |
| XTLS Vision | 支持相应组合 | 不支持 Xray 的 Vision 流控 | 节点要求的 flow 值与传输组合 |
| Trojan、Shadowsocks | 支持 | 支持 | 具体方法、扩展及传输能力仍需逐项核对 |
基础 VLESS 不自带内容加密,部署时需要合适的安全传输保护。VLESS + TLS 与 VLESS + REALITY 也不是可随意互换的两组设置。服务端采用 REALITY 时,把客户端安全选项改成 TLS,通常只会造成握手失败,不会自动获得兼容连接。
- 看到
security=reality,先检查 Xray 及客户端对 REALITY 的支持。 - 看到
flow=xtls-rprx-vision,保留服务端要求的流控,不要为绕过报错直接删掉。 - 看到
type=ws,还要核对 WebSocket 路径、Host 与 TLS 服务名;协议名称相同并不代表这些字段可以省略。
客户端取舍:按现有节点选择内核
没有脱离节点条件的“最快内核”。同一条线路的拥塞、服务端负载、传输配置和本地网络,都会影响连接表现。不能仅凭两种内核的名称给出固定速度排序,也不能把 REALITY 理解成在所有网络里都有效的连通保证。
Xray 内核方案
推荐本篇对需要 REALITY 或 Vision 的配置推荐此方案。安卓使用 v2rayNG;桌面使用 v2rayN 时,确认该节点实际由 Xray 处理。推荐依据是功能匹配,不是未经测试的速度结论。
适合:服务端明确要求 VLESS + REALITY、XTLS Vision 的用户。
V2Fly 内核方案
已有可用的 V2Fly 配置、规则文件和维护流程时,可以继续使用。安卓对应 v2flyNG。迁移前应先确认是否确实需要目标内核独有的功能,而不是仅因客户端名称不同就重建配置。
适合:现有节点与 V2Fly 兼容,且希望保留既有配置流程的用户。
如果订阅同时包含 VMess、Trojan 和 VLESS + REALITY,应按节点逐个判断,而不是给整个订阅贴上“通用”标签。客户端成功导入列表,只说明它识别了订阅中的部分或全部内容,不代表所有节点已经通过连接测试。
从导入到迁移:先核对参数,再测试连接
迁移内核时,先备份订阅来源和手动添加的配置,再记录当前可用节点的协议、传输、安全选项与本地监听端口。不要直接把一套完整 JSON 配置复制到另一个内核:共同历史不等于配置格式长期一致,DNS、路由、传输字段尤其需要核对。
- 确认订阅入口。v2rayN 常见入口为「订阅分组」→「订阅分组设置」;v2rayNG 常见入口为右上角菜单中的「订阅分组设置」。不同界面版本可能调整名称,以当前安装包为准。订阅地址放在分组 URL 字段,不放进单节点的服务器地址。
- 检查节点详情。查看服务器地址、端口、用户标识、传输类型、安全类型及服务名。REALITY 节点还要核对公钥、短标识与指纹等服务端要求的参数,避免只复制地址和用户标识。
- 确认运行内核。桌面端检查启动日志中的内核名称与启动错误;安卓端先确认安装的是 v2rayNG 还是 v2flyNG。不要把更换订阅分组当作更换内核。
- 单节点验证。先选一个字段完整的节点启动,查看日志,再打开实际需要访问的网站。延迟测试通过只代表特定测试请求成功,不等于全部应用都已走代理。
- 最后恢复规则。基本连接成立后,再迁移 DNS、路由和分应用设置。每次只改变一层,保留可回退的配置。
两端配置方案:共用来源,分别验证
桌面端:v2rayN
- 导入可信订阅,检查节点字段是否完整。
- REALITY 节点确认由兼容的 Xray 内核运行。
- 连接成功后,再设置系统代理与路由。
安卓端:v2rayNG 或 v2flyNG
- 按协议要求选择对应客户端。
- 导入同一来源后,单独更新并测试。
- 批准 VPN 连接请求,再检查分应用范围。
同一订阅来源不代表两端设置自动同步。节点是否一致取决于订阅内容和更新时间,本地路由与分应用设置仍需分别维护。
端口与代理入口:内核可用不等于应用已接入
服务端口和本地监听端口解决的是两件事。下面用 443 与 10808 举例说明位置,它们不是统一默认值,也不是实测结果。服务端口按节点提供方填写,本地端口按客户端当前设置填写。
例如,应用配置为连接 127.0.0.1:10808,但客户端实际监听在另一个端口,即使远端节点完全正常,应用仍会连接失败。若该端口只提供 SOCKS 服务,应用也不能把它当成 HTTP 代理端口使用;支持混合监听的配置则应以客户端显示为准。
- 桌面系统代理:让遵循系统代理设置的应用进入客户端,并不覆盖所有程序。v2rayN 中应检查「系统代理」菜单的当前选项。
- 路由规则:流量进入内核后,再决定使用代理、直连还是阻止。切换内核不会自动修正错误的分流规则。
- 安卓 VPN 入口:启动连接后需要系统授权;还应检查分应用代理是否排除了正在测试的应用。
- 端口冲突:日志若出现
address already in use,先停止占用同一端口的旧进程,或更改本地监听与应用代理配置。
常见问题:导入成功、握手失败与更换内核
为什么 v2flyNG 能导入 VLESS 节点,却连不上?
先打开节点编辑页,检查安全类型与 flow。基础 VLESS 和 VLESS + REALITY 不是同一套能力要求。如果节点要求 REALITY 或 Vision,改用支持这些能力的 v2rayNG,并重新核对字段;不要只把安全选项改成另一项。
换到 Xray 后,原来的 JSON 配置还能直接用吗?
不能一概而论。先保留原文件,在客户端中重新导入单节点分享链接,验证最小配置。若必须迁移完整 JSON,应逐项检查当前内核的配置格式;出现未知字段或解析错误时,按日志定位,不要连续删除多个字段试运气。
REALITY 握手失败,是不是内核太旧?
版本能力只是检查项之一。依次核对设备时间、服务器地址与端口、公钥、短标识、服务名、指纹及 flow。确认配置匹配后,再从可信安装入口更新客户端。仅更新界面程序但仍启动旧内核,也可能无法解决问题。
节点测试通过,浏览器还是打不开,先改哪里?
先检查系统代理或安卓 VPN 是否接管了浏览器,再核对本地端口和路由。若日志显示域名解析失败,再单独检查 DNS。不要同时切换内核、DNS 和路由,否则很难确定是哪一项影响了结果。
最终选择可以收敛成一个顺序:先读节点的完整参数,再确定内核能力,接着选择客户端,最后验证代理入口与路由。已能稳定使用的 VMess 或其他兼容配置,不需要为了名称更换整套环境;需要 REALITY 或 Vision 时,则应明确使用匹配的 Xray 方案,而不是依赖“导入成功”判断兼容性。