安卓端先按节点参数选内核,再按配置来源选客户端。需要 VLESS、REALITY 与 Vision 组合时,优先检查 v2rayNG 所带 Xray 的支持情况;已有按 V2Fly 文档维护的配置时,可选 v2flyNG。本文区分客户端、内核与订阅三个层次,给出字段检查、配置片段和切换验证步骤,避免把“导入成功”误判为“连接兼容”。
Project V、V2Fly 与 Xray 的关系
Project V 是围绕网络代理工具形成的项目体系,V2Ray 是其中的核心软件。V2Fly 延续 V2Ray 的社区开发;Xray 从 V2Ray 分支发展,随后形成自己的协议扩展与实现路线。两者具有共同的配置历史,但并非只更换名称的同一份程序,也不能仅凭配置文件都叫 config.json 就相互替换。
客户端承担界面、订阅管理、系统网络接管等工作;内核负责解析配置、建立连接与执行路由。v2rayNG 在安卓端集成 Xray,v2flyNG 在安卓端集成 V2Fly。桌面端的 v2rayN 则需要结合实际版本、节点类型与内核设置判断使用哪套实现,不能把桌面端可选内核的体验直接套到两个安卓客户端上。
| 层次 | 具体对象 | 主要职责 |
|---|---|---|
| 项目与实现 | V2Fly、Xray | 维护协议实现、配置解析与连接处理逻辑。 |
| 安卓客户端 | v2rayNG、v2flyNG | 管理节点和订阅,申请 Android VPN 权限,启动所带内核。 |
| 桌面客户端 | v2rayN | 管理桌面代理入口、节点与内核运行配置。 |
| 连接配置 | VMess、VLESS、传输与 TLS 参数 | 描述客户端如何与服务端协商,必须按实际内核能力生成。 |
两条开发路线的版本号也不能横向比较大小。应用版本与内核版本应分别记录:应用升级可能更新界面而没有切换内核系列,节点连接报错则可能与所带内核支持的字段有关。排查时保留两项版本信息,比单独说“装了最新版”更有用。
协议支持:按完整连接组合判断
VMess、VLESS 是代理协议;WebSocket、gRPC 等属于传输层选项;TLS、REALITY 涉及连接安全设置。选型需要同时核对这些层次。只看到一个 vless:// 链接,还不足以断言所有支持 VLESS 的实现都能连接同一台服务端。
Xray 内核 / v2rayNG
推荐对明确要求 VLESS、REALITY、Vision 的节点,优先选用这条路线,并核对客户端所带 Xray 是否满足服务端要求。推荐依据是协议组合匹配,不代表所有网络下都更快。
适合:节点说明指定 Xray,或使用 VLESS + REALITY + Vision。
V2Fly 内核 / v2flyNG
适合继续使用按 V2Fly 文档编写、已经验证可用的配置。常见 VMess 与 WebSocket/TLS 配置仍需逐项匹配传输、路径和证书参数,不能省略核对。
适合:现有配置以 V2Fly 为基准,且没有依赖 Xray 专属能力。
| 节点描述 | 重点检查 | 选型判断 |
|---|---|---|
| VMess + WebSocket + TLS | 用户 ID、服务端口、路径、Host 与 TLS 服务器名称。 | 两条路线均有相应实现;以具体版本和配置验证为准。 |
| VLESS + REALITY + Vision | flow、security、服务端名称、密钥相关参数与短 ID。 | 优先 v2rayNG / Xray,不当作可直接迁移到 V2Fly 的通用配置。 |
| 完整自定义 JSON | 配置格式、协议字段、传输字段和资源文件路径。 | 按生成配置的目标内核选择,不按文件扩展名判断。 |
结论:先匹配服务端,再比较体验
先记录“协议 + 传输 + 安全层 + flow”四项信息。只要其中一项超出目标内核能力,就先解决兼容问题,不用延迟测试来代替字段检查。
config.json:相似结构与迁移边界
常见配置包含 inbounds、outbounds 与 routing。入站接收本地应用流量,出站决定如何连接目标,路由决定选用哪个出站。下面是采用两者常见传统 JSON 结构的本地 SOCKS 直连示例,仅用于理解字段,不包含远端代理节点,也不会建立加密代理连接。
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"tag": "local-socks",
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true
}
}
],
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {}
}
],
"routing": {
"rules": [
{
"type": "field",
"ip": ["127.0.0.0/8"],
"outboundTag": "direct"
}
]
}
}
这里的 listen 限制本地监听范围,tag 是配置内部的引用名称,outboundTag 必须与出站标签对应。示例把直连出站放在第一项,因此未命中规则的流量也使用直连。迁移时如果只复制路由,却没有复制被引用的出站,结果可能是配置加载失败,而不是自动补齐缺失节点。
- 共有字段仍需看格式:V2Fly 的不同配置格式与 Xray 的配置说明不能混用;先确认客户端接受的 JSON 格式。
- 扩展字段不能盲搬:
security: "reality"和flow: "xtls-rprx-vision"应按 Xray 对应版本的文档处理。 - 密钥字段跟随版本:REALITY 客户端密钥相关字段的命名与兼容行为应以实际内核版本为准,不要只凭旧截图补字段。
- 资源也要迁移:路由引用的地理数据文件、文件路径与标签名称需要同时核对;JSON 语法正确并不等于运行条件完整。
订阅导入与安卓 VPN 接管
订阅是节点信息的分发方式,不是内核协议。相同订阅地址能在两个客户端中添加,不代表两端能识别所有节点字段;某些转换过程还会丢失传输参数。遇到导入后节点数量相同但无法连接,应打开节点编辑信息,对照原始连接参数检查,而不是反复更新订阅。
迁移方案:订阅与网络规则分别验证
保留现有客户端
- 记录应用与内核版本。
- 备份节点参数和订阅地址。
- 记录分应用名单、DNS 与路由模式。
- 保留一组已验证可用的配置。
验证目标客户端
- 先导入一个节点,逐项核对字段。
- 停止原客户端后再启动 VPN 服务。
- 先验证连接,再恢复分应用与分流规则。
- 订阅更新后重新检查关键参数。
同一订阅只解决节点分发;分应用名单、DNS 和路由不会因此自动保持一致。
Android VPN 接管与代理内核是两个层次。客户端通过系统 VPN 接口接收流量,再交给内部处理链路;这不意味着远端节点使用某种传统 VPN 协议。同一用户或配置文件内,通常只能有一个活动 VPN 服务。切换 v2rayNG 与 v2flyNG 时,先停止前者,再授权并启动后者,避免系统撤销原服务后被误认为连接随机中断。
- 首次启动时确认系统 VPN 授权,随后观察客户端是否出现启动错误。
- 需要排除个别应用时,查看客户端的分应用代理设置,核对名单采用的是包含还是绕过逻辑。
- 若退出界面后连接停止,检查 Android 的后台运行限制和电池优化设置,不要先改服务端协议。
- 测试期间暂停其他使用 VPN 接口的工具,减少网络接管冲突。
连接失败:按端口、握手、DNS 的顺序排查
内核选型不能替代网络排查。连接超时可能来自服务端口不可达,TLS 错误可能来自服务器名称或设备时间,网页打不开也可能只是 DNS 路径不符合预期。下面三个数字是检查锚点,不是客户端默认值声明,也不是性能测试结果。
| 现象 | 优先检查 | 下一步操作 |
|---|---|---|
| 启动立即失败 | 未知字段、配置格式、端口占用。 | 读取第一条明确错误,核对内核版本与字段来源。 |
| 连接远端超时 | 地址、端口、当前网络与服务端监听。 | 保持节点不变,分别验证不同网络,避免同时改 DNS 和协议。 |
| TLS 或认证失败 | 设备时间、服务器名称、用户 ID、安全层与密钥参数。 | 与服务端配置逐项核对,不以关闭证书验证作为修复。 |
| 部分域名失败 | DNS 解析路径、IPv6 可达性、路由规则顺序。 | 固定测试域名,检查解析结果与命中的出站。 |
| 只有某个应用失败 | 分应用名单、UDP 需求与应用自身网络行为。 | 先确认该应用是否进入代理接管范围。 |
性能比较也要控制条件:使用相同网络、服务端、时间段和测试目标,分别记录连接成功率、延迟与持续传输表现。一次延迟探测无法证明哪种内核更省电或吞吐更高;移动网络切换、设备温度和后台任务都可能改变结果。诊断日志对外分享前,应删除订阅地址、用户标识与密钥等连接信息。
v2rayNG 与 v2flyNG 的最终选择
如果服务端明确提供 Xray 专用连接组合,选择 v2rayNG 更直接。如果已有长期使用的 V2Fly 配置,且没有新增协议需求,选择 v2flyNG 能减少迁移变量。两者都应以实际连接和字段兼容为判断依据,不必为了内核名称更换一套已验证的配置。
- 新建 VLESS + REALITY + Vision 连接:选 v2rayNG,并核对服务端要求的 Xray 能力与客户端所带版本。
- 沿用 V2Fly 自定义配置:先在 v2flyNG 中验证;确需迁移时,按字段和资源逐项转换。
- 只有 VMess 订阅:先确认传输和 TLS 参数是否完整,再比较客户端的分应用与路由操作是否适合日常使用。
- 桌面与安卓共用节点:v2rayN 与安卓端分别验证内核、DNS 和路由设置,不把订阅同步当成完整配置同步。
执行顺序:一个节点、一套规则、一次切换
先在目标客户端验证一个节点,再添加订阅和分流规则。保留原配置直到目标方案完成实际访问测试,发生问题时才能快速恢复并定位差异。