选择内核先看节点参数,不先看客户端名称。普通 VMess 与部分 VLESS 配置可由两个分支处理;带有 REALITY 或 xtls-rprx-vision 的节点则需要支持相应功能的 Xray。本文适合订阅导入后无法连接、准备更换安卓客户端或需要迁移配置的用户,重点说明协议兼容范围、字段核对顺序和切换后的验证方法。
一、Xray 与 V2Fly:内核不是客户端界面
V2Ray 是代理工具体系中的项目名称,也常被用作这类工具的泛称。V2Fly 是维护 V2Ray 的社区项目,内核承担入站接收、路由匹配、协议处理和出站连接。Xray 从 V2Ray 代码体系分支发展而来,两者具有共同历史,但已经形成独立的功能演进和配置约定。不能把 Xray 理解成给 V2Fly 换了一个名字。
客户端负责订阅管理、节点编辑和系统网络设置,内核负责执行实际连接。安卓端的 v2rayNG 使用 Xray 内核,v2flyNG 使用 V2Fly 内核。桌面端使用 v2rayN 时,则需要确认当前配置调用的具体内核,不能仅凭主窗口标题判断。更新客户端后,也应从启动日志核对实际加载的内核名称与版本。
这条链说明了两种不同故障:节点出现在列表里,只代表客户端解析了订阅;内核能够加载配置并完成远端握手,才代表节点可用。界面能显示某个协议名称,并不保证当前内核理解该协议组合中的全部字段。
二、VLESS、XTLS、REALITY 支持边界
协议、传输和安全层是三个层次。VMess、VLESS 是代理协议;TCP、WebSocket 是承载数据的传输方式;TLS、REALITY 是连接安全相关方案。XTLS Vision 则通过特定流控处理优化符合条件的流量。节点备注里写着“VLESS”,仍不足以决定该用哪个内核,需要继续看安全层和 flow。
| 配置能力 | Xray | V2Fly | 核对重点 |
|---|---|---|---|
| VMess | 支持 | 支持 | UUID、加密选项、传输和 TLS 参数一致 |
| 普通 VLESS | 支持 | 存在支持实现 | 检查实际版本与配置格式,不等同于支持所有 VLESS 扩展 |
| TCP / WebSocket + TLS | 支持常见组合 | 支持常见组合 | 域名、证书验证、路径及 Host 必须对应服务端 |
| XTLS Vision | 支持相应组合 | 不支持 Xray 的 Vision 实现 | flow 为 xtls-rprx-vision 时选择兼容的 Xray |
| REALITY | 支持 | 不支持 Xray 的 REALITY 方案 | 核对服务名、公钥、shortId 与指纹 |
VLESS 本身不提供载荷加密,常见配置需要配合 TLS 或 REALITY 等安全方案。它与 VMess 不是“新版本替代旧版本”的简单关系。判断兼容性时,应把节点当作一整套组合,例如“VLESS + TCP + REALITY + Vision”,而不是只比较第一项。
结论:以 security 和 flow 决定内核
发现 security 为 reality 或 flow 为 xtls-rprx-vision,就优先使用支持该组合的 Xray;普通 VMess + WebSocket + TLS 则先核对参数,不必仅为更换内核而迁移。
三、两组配置:哪些字段必须成套核对
下面两张卡用于识别参数,不是可直接使用的节点。域名使用保留的示例域名,路径与端口也是说明值。实际连接必须采用服务端或订阅提供的参数。尤其不能把一个节点的 UUID、另一个节点的公钥和第三个节点的服务名拼在一起。
VLESS + REALITY + Vision
- 传输
- TCP
- 安全层
- reality
- Flow
- xtls-rprx-vision
- 指纹
- chrome(示例)
- 认证参数
- 服务端对应公钥与 shortId
使用支持该组合的 Xray;服务名与认证参数均按节点资料填写。
VMess + WebSocket + TLS
- 传输
- ws
- 路径
- /proxy-ws(示例)
- 安全层
- tls
- 服务名
- node.example.com(示例)
- VMess 加密
- auto
两类内核均可处理常见组合;路径、Host 和证书域名仍须与服务端一致。
REALITY 客户端不填写服务端私钥。客户端持有服务端对应的公钥等认证信息,服务端私钥应留在服务端。shortId 采用十六进制表示,具体可用值由服务端决定;不要把它当成备注,也不要自行生成一个值替换订阅内容。服务名通常体现在 serverName 或链接参数 sni 中,需要符合服务端设置。
客户端中的“指纹”通常指 TLS ClientHello 的模拟特征,不是设备识别码。把 fingerprint 改成 chrome,并不能修复错误的公钥、UUID 或端口。REALITY 也不必然意味着开启 Vision,二者是不同配置项;只有服务端采用对应组合时,客户端才设置相应 flow。
- VLESS:核对 UUID、encryption 与 flow;常见 encryption 为 none,不能把 VMess 的 auto 原样复制过去。
- WebSocket:核对 path 和请求头 Host;TLS 的 serverName 与 WebSocket Host 不是同一个字段。
- TLS:保持证书验证开启;不要用跳过验证掩盖证书或服务名错误。
- REALITY:核对公钥、服务名、shortId、指纹及内核版本;不同版本的界面标签与 JSON 字段可能变化,以当前内核说明和客户端生成结果为准。
四、配置迁移:相同 JSON 外观不代表通用
Xray 与 V2Fly 的传统配置都能看到 inbounds、outbounds、routing 等结构,但共同结构不代表所有字段互通。V2Fly 的不同配置格式也有差别。迁移时,应该先确认目标内核接受的配置格式,再检查具体协议和传输字段。将整份 Xray 配置直接交给 V2Fly,可能在加载阶段就失败。
下面展示的是 Xray 常见 VLESS + TLS + Vision 出站片段,用于定位 flow 所在层级。它不是完整配置,示例域名和全零 UUID 都是明显假值,无法用作实际节点。此例不包含 REALITY 参数,也不能通过单独把 tls 改为 reality 来完成转换。
{
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "node.example.com",
"port": 443,
"users": [
{
"id": "00000000-0000-0000-0000-000000000000",
"encryption": "none",
"flow": "xtls-rprx-vision"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "node.example.com",
"allowInsecure": false
}
}
}
]
}
- 先保存原设置。记录客户端版本、内核版本、当前节点和路由预设;备份文件可能含访问凭据,需要妥善保存。
- 先迁移一个节点。通过目标客户端支持的节点链接或订阅重新导入,检查生成配置,不先覆盖全部路由与 DNS 设置。
- 先确认内核启动。若日志提示未知协议、未知安全类型或不支持 flow,应修正配置或选择兼容内核,而不是反复测试网络延迟。
- 再恢复分流。核对规则引用的出站 tag、域名与 IP 数据文件,以及 DNS 处理方式。节点能连通,不代表旧规则已正确迁移。
五、v2rayNG 与 v2flyNG 的选择和验证
安卓用户已有 REALITY 或 Vision 节点时,通常选择 v2rayNG。已有 V2Fly 配置、节点为普通兼容组合且运行正常时,可以继续使用 v2flyNG。对桌面用户而言,v2rayN 是管理界面,核心判断仍是当前节点调用哪个内核、内核是否支持这套参数。
不要同时改内核、节点、DNS 和路由预设。一次只改一项,才能知道错误来自哪里。下面的数字用于说明各端口的角色,不是测速结果,也不表示所有客户端的默认值。端口是否采用这些数值,应以当前配置为准。
远端 443 端口能建立 TCP 连接,只能证明这一层可达,不能证明 VLESS 认证、TLS 或 REALITY 握手成功。本地 10808 若被占用,则可能使内核无法启动,和远端协议是否兼容无关。DNS 请求也有独立路径:浏览器能解析域名,不代表内核使用的解析器同样可达。
- 内核日志:先找启动成功记录和实际版本,再看连接错误;区分配置加载错误、DNS 错误、握手错误和超时。
- 入口设置:桌面检查系统代理是否启用;安卓检查 VPN 授权及按应用代理范围。入口未生效时,请求可能没有进入内核。
- 同条件测试:保留相同网络、同一节点和相同路由设置,用实际网页请求验证,不把单次延迟测试当成完整兼容性证明。
- 日志分享:隐藏订阅令牌、UUID、服务地址和认证参数。保留错误类型、版本信息与发生时间即可帮助定位。
六、常见问题:能导入、能启动、能连接的区别
V2Fly 支持 VLESS,为什么 REALITY 节点仍然不能用?
VLESS 是协议,REALITY 是另一层能力。支持前者不等于支持后者;同样也不意味着支持 Vision。应检查节点的完整组合,使用能够处理该安全层与 flow 的 Xray,而不是只删除 REALITY 字段。
换成 Xray 后一定会更快吗?
不一定。性能还受远端负载、网络路径、丢包、传输方式和客户端资源限制影响。Vision 的处理机制不等于所有请求都会获得固定幅度的提速。先保证功能兼容,再在同一网络条件下比较实际使用表现。
把 flow 留空可以兼容旧内核吗?
不能把它当成通用降级办法。服务端若要求 Vision,客户端留空可能导致连接失败。需要由服务端提供双方均支持的配置组合;单方面删字段,并不会让不兼容的服务端自动切换协议。
同一订阅可以同时用于两个安卓客户端吗?
取决于订阅格式和节点内容。能解析订阅不代表每个节点都兼容;普通 VMess 节点与 REALITY 节点可能混在同一分组中。分别核对导入后的协议、传输和安全参数,并避免两个客户端同时尝试接管 VPN 通道。
结论:先验证一条连接,再恢复整套配置
按“配置可加载、入口已接管、远端握手成功、分流结果正确”的顺序检查。只要定位到失败层级,就能决定是更换内核、修正参数,还是排查网络,而不是盲目重装客户端。