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(不使用该协议)。
操作顺序建议:
- 先在主界面看一遍已导入节点的协议类型,心里有数哪些节点会被这次切换影响。
- 进 CoreType Settings,只改你实际使用的协议行,不碰其他行。
- 保存后回到主界面,选中一个受影响的节点,右键测速或手动启用,看日志是否报错。
如果一次性把全部协议切到 sing-box,出了问题很难判断是哪条协议不兼容。建议一次只切一类协议,确认正常后再切下一类。
切内核后订阅格式变了没?
这是最容易误会的地方。v2rayN 的订阅导入和内核执行是两层独立流程:
- 导入层:v2rayN 从订阅 URL 拉回内容,解析成内部
ProfileItem对象(包含协议类型、地址、端口、传输参数、TLS 设置等),然后显示在节点列表里。 - 执行层:你选中一个节点点启用时,v2rayN 的
CoreConfigService把该 ProfileItem 转换成对应内核的配置 JSON,再调用xray.exe或sing-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-core | sing-box | mihomo |
|---|---|---|---|
| 首发年份 | 2021(fork V2Ray) | 2022 | 2023(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 DNS | 1.1.1.1 或 223.5.5.5 | 用于解析 DoH/DoT 服务器自身的域名 |
| Direct DNS | https://dns.alidns.com/dns-query | 国内域名走直连 DNS |
| Remote DNS | https://dns.google/dns-query 或 https://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 DNS
进 Settings → 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 protocol、unknown field 或 dns 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 的订阅,减少客户端侧的手动转换。