节点包含 REALITY 或 xtls-rprx-vision 时,优先核对 Xray 支持;只有 VMess、WebSocket、TLS 等常见参数时,两条内核线都可能适用。本文面向需要选择客户端、切换内核或迁移配置的用户,按协议、传输、安全层与日志逐项说明判断方法,不把客户端名称当作兼容性结论。
先区分 V2Ray、V2Fly、Xray 与客户端
内核负责代理连接、协议处理、DNS 与路由执行;客户端负责节点列表、订阅导入、参数编辑和进程管理。v2rayN 窗口能显示某个节点,不代表当前运行的内核一定能解析该节点的所有字段。选择内核前,应先看节点要求,再看客户端实际调用的程序。
Project V 是这一生态的项目背景,V2Ray 是其中的代理软件。V2Fly 社区延续了 V2Ray 的开发;Xray 在 2020 年从 V2Ray 相关代码分出,形成独立发展的内核项目。两者保留了不少相似的配置概念,但不是同一程序的两个界面,也不能仅凭共同来源推断配置完全兼容。
- V2Fly:这里指维护 V2Ray 的社区及其内核线,程序和文档中仍经常出现 V2Ray 名称。
- Xray:独立演进的代理内核,REALITY 与 XTLS Vision 是选型时需要关注的功能。
- v2rayN:桌面客户端,具体可选内核与安装内容、客户端版本和配置类型有关。
- v2rayNG / v2flyNG:安卓客户端,前者使用 Xray 内核,后者使用 V2Fly 内核;不要把两者视为同一个应用内的开关。
功能差异:先看 REALITY 与 Vision,再看传输组合
最直接的分界是节点是否要求 Xray 特有的能力。REALITY 属于安全层方案,不是 VMess 或 VLESS 的替代名称;xtls-rprx-vision 是流控参数,不是独立的传输协议。一个节点能否连接,取决于协议、传输、安全层和流控组合是否同时被支持。
| 检查项 | Xray | V2Fly | 实际判断 |
|---|---|---|---|
| VMess | 支持 | 支持 | 继续核对传输方式、TLS 与认证参数,不能只看协议名称。 |
| VLESS | 支持 | 支持,但功能组合不等同 | 基础 VLESS 支持不等于支持 REALITY 或 Vision。 |
| Trojan | 支持 | 支持 | 核对密码、TLS 服务名及服务端使用的传输配置。 |
| REALITY | 支持,需匹配实际版本与字段 | 不能直接使用 Xray 的 REALITY 配置 | 节点要求 REALITY 时,在本文比较的两条内核线中选择 Xray。 |
| XTLS Vision | 支持相应的 VLESS 配置组合 | 不支持 Xray 的 Vision 流控 | 看到 xtls-rprx-vision 时核对 Xray 及传输要求。 |
| WebSocket + TLS | 支持 | 支持 | 仍需核对路径、Host、服务名与服务端设置。 |
| DNS 与路由 | 具备对应模块 | 具备对应模块 | 字段、默认行为和扩展能力需查各自文档。 |
旧教程中的“XTLS”可能指早期配置,不能直接等同于现在的 Vision。也不要为了让配置通过解析,把 security 从 reality 改成 tls:这会改变握手方式,服务端并不会随之修改。正确做法是使用匹配的内核,或向服务端管理者获取另一种真实存在的节点配置。
客户端怎么选:按节点要求确定内核
如果已有可用订阅,先打开节点编辑窗口查看关键字段。只写“VLESS”的节点信息不够完整,还要确认传输类型、安全层与流控。下面的推荐针对需要 REALITY 或 Vision 的场景,不表示所有普通节点都应迁移。
Xray 内核
推荐用于明确要求 REALITY、xtls-rprx-vision 的节点。桌面端核对 v2rayN 实际调用的内核;安卓端可选择 v2rayNG,并检查随包内核是否满足节点要求。
适合:已有 REALITY 或 Vision 节点,需要匹配其功能组合。
V2Fly 内核
用于已经按 V2Fly 配置并验证的环境。常见 VMess、VLESS 或 Trojan 节点仍需逐项核对传输与安全参数;安卓端对应客户端为 v2flyNG。
适合:维护现有 V2Fly 配置,且服务端没有要求 Xray 专属功能。
在 v2rayN 中,部分版本可从「设置」→「参数设置」查找内核相关选项,具体名称和支持范围随版本变化。若界面没有提供某种内核,不要假定把程序文件改名就能切换。应检查客户端支持范围、安装包内容和启动日志,必要时使用与现有配置匹配的客户端安装方式。
双端选型:分别验证同一订阅中的节点
桌面端:v2rayN
- 先确认节点协议、传输与安全层。
- 核对配置类型对应的内核设置。
- 启动后查看日志中的内核名称与版本。
安卓端:v2rayNG / v2flyNG
- REALITY 或 Vision 节点使用匹配的 v2rayNG。
- 已有 V2Fly 环境可用 v2flyNG 核对配置。
- 首次连接确认系统 VPN 授权与应用代理范围。
同一订阅地址可以用于不同客户端,但格式解析、支持字段与更新时刻可能不同,节点列表和连接结果需要分别确认。
切换内核前:把本地端口与远端端口分开记录
切换后“网页打不开”,不一定是远端协议不兼容。应用仍连接旧的本地端口、监听地址变更、端口被占用,都可能造成相同现象。下面是一组用于说明检查位置的配置示例,不是客户端默认值,也不是实测结果。
- 记录本地入口。若应用使用 SOCKS,应连接示例中的
127.0.0.1:10808,不是服务器的443端口;HTTP 代理则需使用实际启用的 HTTP 或混合入口。 - 记录节点参数。保留服务器地址、端口、用户标识或密码、传输类型、服务名与流控。REALITY 还要核对公钥、短 ID 等服务端提供的参数。
- 记录路由和 DNS。切换前导出或备份客户端配置,区分订阅数据、自定义路由和自定义 JSON,避免只备份节点列表。
- 逐项切换。先暂停 TUN 等额外接管方式,在明确的本地代理入口完成一次连接验证,再恢复原来的路由和接管设置。
服务器监听 443 不代表节点一定使用普通 TLS,也不意味着能把任意浏览器请求直接发给该端口。端口只是连接目标的一部分,具体握手仍由协议与安全层共同决定。
JSON 能否直接复用:结构相似不等于字段兼容
两条内核线常见的 inbounds、outbounds、routing、dns 概念相近,但扩展字段、配置格式和默认处理会随项目演进而不同。客户端导入的分享链接还会先被转换为运行配置,因此“链接导入成功”和“生成的 JSON 能启动”是两个阶段。
- 检查出站:确认
protocol、认证参数和streamSettings的组合,不要只复制其中一项。 - 检查路由:规则中的
outboundTag必须对应实际存在的出站tag,规则顺序也应保留原来的意图。 - 检查 DNS:区分系统 DNS、客户端生成的 DNS 配置与内核处理目标域名的方式,不能把三者当作一个开关。
- 检查资源:路由若引用域名或地址数据文件,应核对新内核能否读取其格式,以及客户端传入的资源路径。
对普通用户,更稳妥的迁移方式是保留原配置备份,在目标客户端重新导入节点并检查参数,而不是把整份生成配置直接覆盖过去。自定义 JSON 用户则应按目标内核文档逐字段核对,并通过当前二进制的帮助信息确认配置测试命令,避免照抄另一条内核线的命令参数。
故障排查:先看启动,再看握手,最后看路由
日志应按连接阶段阅读。内核尚未成功启动时,调整远端服务名没有意义;远端握手已经通过时,继续反复切换内核也未必能解决路由或 DNS 问题。每次只改一组相关字段,保留修改前后的日志时间点。
节点能导入,启动时却提示不认识字段?
查看启动日志中的内核名称与版本,再核对报错字段。若节点要求 REALITY 或 Vision,应选择支持相应配置的 Xray;若已经使用 Xray,则检查版本与客户端生成配置是否匹配。不要直接删除报错字段。
换成 Xray 后还是一直超时,哪里先查?
先确认服务器地址和端口可达,再检查 TLS 服务名或 REALITY 参数、用户标识与流控。单纯超时不能证明内核选错;远端未监听、网络路径中断或本地防火墙也可能造成超时。
日志出现 address already in use,该改哪个端口?
检查报错对应的本地监听地址。若示例端口 10808 被另一个进程占用,先停止重复运行的内核,或修改本地监听端口,并同步修改使用该代理的应用设置;不要随意改远端 443。
内核已启动,测试通过,但只有部分网站打不开?
先确认应用确实使用代理,再查看目标域名命中了哪条路由及哪个出站。使用同一节点比较临时代理规则与原规则,随后核对 DNS。安卓端还需检查分应用代理是否把目标应用排除。
选型结论:保留可验证的配置组合
需要 REALITY 或 XTLS Vision,就在本文比较范围内选择匹配的 Xray;已有 V2Fly 配置稳定运行,且节点没有要求这些功能,则没有仅为更换名称而迁移的必要。VMess、VLESS、Trojan 都应继续检查传输、安全层和认证参数。
- 先看节点:协议名称之外,记录传输、安全层、流控与服务端要求。
- 再看运行进程:用启动日志确认实际内核,不以客户端图标或节点名称代替判断。
- 最后做验证:保持同一网络、同一节点与同一目标,验证连接、DNS 和路由,再恢复日常配置。
需要核对字段结构,可继续阅读V2Ray JSON 配置手册;不熟悉入站、出站和路由的区别,可先查名词解释。版本选择以实际安装包与节点要求为准,不把历史教程里的选项位置视为所有客户端版本的固定界面。