v2rayN 7.x 不是只有一个内核。它的发布包里同时塞了 Xray-core、sing-box-core 和 mihomo-core 三个可执行文件,放在 bin/ 目录下。你导入同一个订阅,最终由哪个内核执行连接,取决于 CoreType Settings 里的协议分配。

但切内核不止是菜单里改个选项。最常见的遗漏是两个:一是以为切完内核 DNS 会自动跟着换,结果系统代理能用、TUN 模式直接断网;二是以为 sing-box 能原样吃下 Xray 的 Reality 配置,日志里报 unknown field 后不知道往哪回退。

这篇文章按顺序走完切换、订阅格式核对、DNS 重配、TUN 参数调整和回滚入口。

v2rayN 7.x 三个内核到底怎么切?

切换入口在 Settings → CoreType Settings。页面里不是让你选一个全局内核,而是按协议类型逐项分配。

当前支持的协议行包括 VMess、VLESS、Shadowsocks、Trojan、Hysteria2、TUIC、WireGuard、HTTP、SOCKS 等。每行对应的下拉选项有 Xray、sing-box、mihomo 和 None(不使用该协议)。

操作顺序建议:

  1. 先在主界面看一遍已导入节点的协议类型,心里有数哪些节点会被这次切换影响。
  2. 进 CoreType Settings,只改你实际使用的协议行,不碰其他行。
  3. 保存后回到主界面,选中一个受影响的节点,右键测速或手动启用,看日志是否报错。

如果一次性把全部协议切到 sing-box,出了问题很难判断是哪条协议不兼容。建议一次只切一类协议,确认正常后再切下一类。

切内核后订阅格式变了没?

这是最容易误会的地方。v2rayN 的订阅导入和内核执行是两层独立流程:

  • 导入层:v2rayN 从订阅 URL 拉回内容,解析成内部 ProfileItem 对象(包含协议类型、地址、端口、传输参数、TLS 设置等),然后显示在节点列表里。
  • 执行层:你选中一个节点点启用时,v2rayN 的 CoreConfigService 把该 ProfileItem 转换成对应内核的配置 JSON,再调用 xray.exesing-box.exe 执行连接。

所以切内核后,节点列表不会变、订阅也不会自动变格式。真正变的是 v2rayN 生成给内核的那个临时配置文件。同一个 ProfileItem,给 Xray 时写成 Xray JSON,给 sing-box 时写成 sing-box JSON。

问题出在两个内核对同一协议字段的支持程度不一样。例如 VLESS 的 flow: xtls-rprx-vision 字段在 Xray 下正常,切到 sing-box 后可能被识别为 unknown field,日志里会明确标出来。

如果订阅端输出的是纯 vmess:// / vless:// URI 列表,这种通用格式在三个内核下都能解析,因为解析层是 v2rayN 做的。但如果订阅端返回的是 Clash YAML 或 sing-box 专属 JSON,格式兼容性就取决于 v2rayN 的订阅转换设置。

这里有一个常见坑:有些订阅后台会按 User-Agent 返回不同格式。v2rayN 请求拿到的可能是 V2Ray URI,浏览器访问同一个链接看到的却是网页。判断格式不要用浏览器结果替代 v2rayN 实际收到的内容。

如果你的订阅端同时支持多格式输出,可以联系服务商固定 V2Ray/Xray 通用格式,这样切内核时订阅内容不用改动。一些后端面板默认只输出 Clash 格式,v2rayN 拿回来解析空列表,看起来像订阅失效,实际是格式不匹配。

Xray、sing-box、mihomo 三个内核怎么选

对比维度Xray-coresing-boxmihomo
首发年份2021(fork V2Ray)20222023(Clash Meta 继任)
核心协议优势VLESS Reality、XTLS Vision、uTLS 指纹完整Hysteria2、TUIC、AnyTLS 原生支持Clash YAML、Selector/URLTest 分组
TUN 模式支持,分片功能可用支持,内存占用更低,自动 URLTest支持,规则分组成熟
Reality 兼容度完整部分支持,uTLS 和 Vision 细节有差异不支持
Fragment/分片支持不支持不支持
前置/落地代理不支持 Hysteria2/TUIC 做链条节点支持全部协议做前置/落地不支持
DNS 配置入口Settings → DNS Settings(Xray 页)Settings → DNS Settings → sing-box DNS settings走 Clash 内置 DNS
内存占用中等低(同数量节点下通常少 15-30MB)中等
默认推荐场景纯 VLESS/Trojan/VMess 节点混用 Hysteria2/TUIC 或需要 URLTest 自动优选已有 Clash 配置想复用

默认策略:你订阅里哪种协议最多,就按哪种协议选主力内核。如果 VLESS Reality 是主力,Xray 别动;如果 Hysteria2 和 TUIC 占一半以上,sing-box 是更好的默认项。

同时启用两个内核不冲突,v2rayN 内部会根据你选中的节点协议自动调用对应的 .exe 文件。所以你完全可以让 VLESS 走 Xray、Hysteria2 走 sing-box,共用同一个节点列表和订阅。

切到 sing-box 后 DNS 要重新配吗?

要,而且这是最容易跳过的步骤。

Xray 和 sing-box 在 v2rayN 里各自有独立的 DNS 设置页面。你在 Xray DNS 页改的 8.8.8.8 不会自动同步到 sing-box。切内核后必须进 Settings → DNS Settings → sing-box DNS settings,点 Import default DNS config 导入默认配置,然后把上游 DNS 地址改成你实际用的服务器。

建议的 DNS 配置策略:

DNS 类型推荐地址说明
Bootstrap DNS1.1.1.1223.5.5.5用于解析 DoH/DoT 服务器自身的域名
Direct DNShttps://dns.alidns.com/dns-query国内域名走直连 DNS
Remote DNShttps://dns.google/dns-queryhttps://cloudflare-dns.com/dns-query海外域名走代理 DNS
FakeIP仅 TUN 模式生效,自动分配 198.18.0.0/15减少一次 DNS 查询,但要注意 FakeIP 污染问题

另外注意 sing-box DNS 设置里有一个 阻止 SVCB/HTTPS 查询 的开关,建议打开。Windows 11 和较新的 Chromium 浏览器会发出 SVCB/HTTPS 类型的 DNS 查询用于 ECH(Encrypted Client Hello),这些查询如果走直连 DNS 服务器,可能让域名分流失效。

从 Xray 迁移到 sing-box:六个检查点

按这个顺序走,每次只动一项,有问题能立刻定位到是哪一步。

第一步:备份当前配置 v2rayN 主界面右上角 Settings → Backup & Restore,导出当前全部配置为一个 zip。这一步是回滚入口,别跳过。

第二步:确认 bin/ 目录下的 sing-box.exe 存在且版本正确 打开 v2rayN 安装目录下的 bin/ 文件夹,确认 sing-box.exe 存在。当前 v2rayN 7.x 发布包(截至 2026 年 5 月最新 Release)内置的 sing-box 版本通常为 1.11 或 1.12 系列。如果你需要更新的 sing-box 特性,去 sing-box Releases 下载对应架构版本替换。

第三步:在 CoreType Settings 里只改一类协议 比如先把 Hysteria2 从 Xray 切到 sing-box,保存后找一条 Hysteria2 节点测速,看日志是否正常。正常之后再切 TUIC,以此类推。不要一键全切。

第四步:配 sing-box DNSSettings → DNS Settings → sing-box DNS settings,导入默认配置,修改上游 DNS 地址。

第五步:TUN 参数适配 Settings → Option Settings → Tun mode Setting。sing-box 的 TUN 实现和 Xray 有差异,重点看三项:

  • Stack:选 system(兼容性最好,需管理员权限)、gvisor(纯用户态,兼容性次之)或 mixed(自动选择)。如果 TUN 开启后部分应用无法联网,先试 system
  • MTU:默认 65535 是 sing-box 推荐的自动协商值,一般不用改。如果你网络环境有 MTU 限制(比如 PPPoE 拨号),改成 1500。
  • Strict Route:建议开启,确保所有流量都经过 TUN 网卡。

第六步:日志验证 选一个切过内核的节点启用,打开 v2rayN 的日志窗口(主界面底部 Log 标签)。正常启用的日志应该能在前几行看到 sing-box started 或类似标记。然后访问一个海外站点测试连接,看日志里的 outbound 路由记录是否命中预期规则。

如果日志出现 unsupported protocolunknown fielddns lookup failed,错误信息本身已经指明了方向——不需要猜测,直接看报错行。

什么时候该切,什么时候停了别动

以下情况适合切 sing-box:

  • 订阅里有超过一半节点是 Hysteria2 或 TUIC 协议,Xray 跑不了,不切等于浪费节点。
  • 需要 URLTest 自动最低延迟选路,这个功能 Xray 没有,sing-box 原生支持。
  • 内存紧张(比如老旧笔记本或 VPS 上跑客户端),sing-box 在同等节点数下内存占用明显更低。

以下情况不建议切,或只部分切换:

  • 主力节点是 VLESS Reality + Vision + uTLS 这一套,Xray 的 Reality 实现更完整,sing-box 的 Reality 兼容度有边界差异。
  • 依赖 Xray 的 Fragment/分片功能——sing-box 不支持分片,切过去这个功能直接消失。
  • 当前配置稳定、没有新增 Hysteria2/TUIC 节点的需求——不需要为了切而切。

回滚方式很简单:回到 CoreType Settings,把切出去的协议改回 Xray,再把 DNS 设置页切回 Xray 页改回原来的地址,重新启用节点即可。

切内核不是一次性动作。比较实际的做法是把 sing-box 当第二内核,让 Hysteria2 和 TUIC 节点专门走它,Xray 继续负责 VLESS 和 Trojan。两个内核长期并行,远比”全切 sing-box 再全切回来”省时间。

如果你的订阅来源同时支持 V2Ray/Xray 和 sing-box 两种格式导出,在订阅后台选择 V2Ray/Xray 通用格式即可,v2rayN 会自动在内部为不同内核生成对应配置。格式层面的兼容性不需要用户手动处理;真正需要用户判断的只有协议分配和 DNS 两个入口。

如果订阅端只输出单一格式导致切换后部分节点不可用,可联系服务商开通多格式导出,或在订阅后台选择兼容 Clash / Singbox / V2Ray 的订阅,减少客户端侧的手动转换。

相关阅读