先看节点要求,再选内核。使用 VLESS、XTLS Vision 与 REALITY 组合时,选择支持对应特性的 Xray 版本;使用 VMess、WebSocket 与 TLS 等配置时,逐项核对两端参数。本文适合已经导入订阅、需要判断内核兼容性的用户,重点说明协议分层、安卓客户端选择,以及切换内核后的验证顺序。
区分客户端、内核与 Project V 分支
先把界面和连接引擎分开。v2rayN、v2rayNG、v2flyNG 是客户端,负责保存节点、管理订阅分组、生成配置并展示日志。内核读取配置,执行代理协议、DNS 查询和路由分流。客户端能识别一条订阅链接,不等于它调用的内核一定支持链接里的全部参数。
Project V 是相关工具与协议的项目体系,V2Fly 社区维护其中的 V2Ray 内核。Xray-core 于 2020 年从 V2Ray 分出,随后独立演进。两者保留了一部分共同协议和配置概念,但新功能、字段格式与发布节奏已经不同。不要把它们理解成同一程序的两个皮肤,也不要用“版本号更大”跨项目比较能力。
- v2rayN:桌面客户端。以当前发行版提供的内核选项为准,检查节点实际调用的内核,不只看安装目录里有哪些可执行文件。
- v2rayNG:安卓客户端,使用 Xray 内核;是否支持某项新特性,还要看客户端捆绑的内核版本。
- v2flyNG:安卓客户端,使用 V2Fly 内核;适合按 V2Fly 的配置格式与协议能力进行部署和排查。
拆开 VLESS、Vision 与 REALITY 的职责
“VLESS + TCP + REALITY + Vision”描述的是一组配合工作的设置,不是四种可以随意互换的协议名称。VLESS 负责代理协议层,TCP 表示底层传输方式,REALITY 属于安全层方案,Vision 是 Xray 的流控方式。把不同层混成一个开关,最容易出现订阅导入成功、实际握手失败的情况。
| 名称 | 主要职责 | 核对内容 |
|---|---|---|
| VMess | 代理协议,包含认证及相应的数据保护机制 | UUID、传输设置、服务端兼容性;现代配置通常使用 alterId 为 0 的方式 |
| VLESS | 轻量代理协议,本身不提供传输加密 | UUID、加密字段、安全层与 flow 设置 |
| WebSocket | 承载代理流量的传输方式 | 路径、Host、反向代理设置,以及是否配合 TLS |
| TLS | 通过证书验证等机制建立安全连接 | SNI、证书域名、系统时间及证书链 |
| XTLS Vision | Xray 中的流控方案,用于特定连接组合 | xtls-rprx-vision、配套传输和两端支持情况 |
| REALITY | Xray 提供的安全层方案 | 服务端公钥参数、serverName、shortId 及客户端指纹设置 |
VLESS 的 encryption=none 不等于整条连接必然明文传输:是否有安全保护,要继续查看外层采用 TLS 还是 REALITY。反过来,不能因为设置了 VLESS,就默认连接已经加密。部署时应按服务端给出的完整组合填写,而不是只复制 UUID。
Vision 也不是一个通用的“加速按钮”。它对承载方式和连接内容有具体要求,不能看到 WebSocket 节点就直接补上 flow=xtls-rprx-vision。REALITY 与 Vision 经常一起使用,但两者并非同义词,启用其中一项不代表另一项已经配置。
核对 Xray 与 V2Fly 的支持边界
选择内核时,以节点实际使用的功能为单位核对。VMess 和常见 WebSocket、TLS 配置在两个项目中都有实现,但配置文件不能因此整份照搬。尤其是 V2Fly 的不同配置格式、Xray 的扩展字段,以及新传输选项,都需要对照目标发行版确认。
| 节点要求 | Xray 内核 | V2Fly 内核 | 选择依据 |
|---|---|---|---|
| VMess | 支持 | 支持 | 核对认证、传输、安全层及版本兼容性 |
| WebSocket + TLS | 支持常见组合 | 支持常见组合 | 保持路径、Host 与 SNI 等参数一致 |
| 基础 VLESS 配置 | 支持 | 核对目标发行版的协议实现与配置格式 | 不能从 VLESS 名称推导出 Vision 或 REALITY 支持 |
| XTLS Vision | 在支持该功能的版本中使用 | 不支持 Xray 的 Vision 流控 | 节点要求该 flow 时使用对应 Xray 版本 |
| REALITY | 在支持该功能的版本中使用 | 不支持 Xray 的 REALITY 配置 | 不能通过改字段名称转换为普通 TLS |
基础 VLESS 的历史实现、发行版差异,不应被简化成“所有 V2Fly 版本都支持”或“两个项目的 VLESS 完全相同”。对实际选型而言,更明确的边界是:如果节点要求 REALITY 或 xtls-rprx-vision,就按 Xray 的支持范围选择客户端与内核,而不是尝试让 V2Fly 忽略这些字段。
Xray 内核
推荐本篇针对 VLESS、Vision 与 REALITY 组合优先推荐。保留服务端给出的安全层和 flow 参数,并确认客户端内置版本能够识别它们。
适合:节点明确要求 REALITY 或 XTLS Vision 的连接环境。
V2Fly 内核
按 V2Fly 的配置体系运行已验证的协议与传输组合。已有 VMess 等部署可继续核对兼容性,没有必要仅因分支名称不同就迁移。
适合:服务端提供 V2Fly 配置,且不依赖 Xray 专属特性的环境。
检查订阅参数与连接端口
更新订阅只负责获取节点资料,不会把不兼容协议转换成兼容协议。检查一条 VLESS 节点时,先核对地址、端口和 UUID,再看传输、安全层、SNI 与 flow。REALITY 节点还应逐项核对服务端提供的公钥参数、shortId 和客户端指纹;不同版本可能调整字段名称,以当前客户端界面和内核文档为准。
这两个端口不是同一个东西。远端端口用于连接服务端,本地监听端口用于让浏览器或其他程序访问本机代理。把远端的 443 改成本地的 10808,不能解决连接失败;让两个本地进程同时占用同一个监听端口,也可能导致内核启动失败。以上数字是配置示例,不代表当前设备的实际值。
- 保存原始节点信息。在修改前保留订阅分组和节点参数,不公开包含 token 或 UUID 的完整链接。
- 对照安全层。服务端要求 REALITY,就不要在客户端擅自切换为 TLS;服务端要求 TLS,也不要自行填写 REALITY 公钥。
- 对照流控。只有服务端配置要求且组合受支持时,才填写
xtls-rprx-vision。 - 对照传输字段。WebSocket 路径如
/example-ws是路径示例,必须替换为服务端实际值;不要据此给 TCP 节点添加路径。 - 执行真连接延迟测试。记录测试时间和日志;TCPing 只说明目标端口的可达情况,不能证明认证和安全握手已经成功。
选择桌面与安卓的配置方案
桌面端先确认 v2rayN 当前节点使用的内核,再做测试。需要检查本地监听和代理相关参数时,进入「设置」→「参数设置」核对;不同发行版的分栏位置可能变化,应以实际界面为准。订阅分组负责管理来源,更新订阅负责刷新节点,这两个操作都不等于切换内核。
配置方案:按节点特性分配客户端
桌面端:v2rayN
- 对 REALITY 或 Vision 节点,确认实际调用的是兼容的 Xray 内核。
- 保留原订阅分组,用同一节点完成切换前后的测试。
- 先检查内核启动日志,再检查系统代理和路由分流。
安卓端:按内核选择
- 需要 Xray 特性时,选择内置版本满足要求的 v2rayNG。
- 按 V2Fly 配置部署时,使用 v2flyNG 并核对字段兼容性。
- 分别更新订阅;分应用代理与本机规则需要各自设置。
共用订阅地址不代表本地设置同步;两端节点能否一致,取决于订阅内容、解析能力与更新时间。
迁移时不要一次同时修改内核、DNS、路由和代理模式。先保持节点不变,确认新内核能启动并完成真连接延迟测试,再逐项恢复路由分流。系统代理与安卓的流量接管方式不同,即使两端使用相同节点,也不能直接比较所有应用的行为。
按日志区分兼容错误与网络错误
先判断失败发生在哪一层。配置读取阶段报错,优先检查字段和内核;连接远端超时,优先检查地址、端口和网络;出现握手错误,再核对安全层参数。不要遇到任何报错都重新更新订阅,这会丢失原来的对照条件,也不一定触及真正原因。
能导入 REALITY 节点,为什么还是连接失败?
导入是客户端解析链接,连接由内核执行。先从启动日志确认 Xray 版本和实际调用路径,再对照服务端公钥参数、serverName、shortId 与指纹设置。最后执行真连接延迟测试,不要只看节点是否出现在列表里。
日志提示 unknown field,能把那一行删掉吗?
先确认配置属于哪个项目和哪种格式。若报错字段用于 REALITY 或 Vision,删除可能改变连接语义,不能作为兼容方案。应改用支持该字段的内核版本,或由服务端提供另一套完整且兼容的节点配置。
把 REALITY 改成 TLS,能在另一内核上用吗?
不能只改客户端。两种安全层的握手与服务端设置不同。只有服务端另行配置了 TLS 入站,并提供对应端口、证书域名和认证信息,客户端才能按那套参数连接。
TCPing 正常,真连接延迟却超时,先检查哪里?
先检查 UUID、flow、安全层和 SNI,再看日志是否包含认证失败或握手失败。若节点真连接延迟正常但浏览器失败,再检查系统代理、本地端口与路由规则;同时确认测试目标本身可以访问。
换成 Xray 后一定更快吗?
不能仅凭内核名称判断。保持同一网络、同一服务端和同一测试目标,分别记录真连接延迟与实际请求结果。服务端负载、线路、DNS 和路由都会影响体验,兼容成功也不等于吞吐量必然提高。
最终保留一条可重复的验证链:确认内核启动成功,确认节点完成实际请求,再确认应用流量走向。需要补充操作步骤时,可查看真连接延迟测试与系统代理设置;需要核对安卓配置时,查看安卓端使用文档。选型的依据始终是服务端要求与客户端实际能力,而不是单独一个协议标签。