Clash Verge Rev 虚拟网卡模式(TUN)开不了或开了不起作用
主题:排错
适用:clash-verge-rev / windows/macos / any
最后验证:2026-09-18
先看开关能不能点;能点但打开失败,看报错里有没有 test failed;开着却上不了网,再查防火墙和多余的网卡。
- tun-service-not-installed:虚拟网卡模式需要管理员权限。不以管理员身份运行时,要先装「服务模式」,由服务以管理员权限拉起内核1。既没装服务、也不是以管理员身份运行时,开关点不了,这一行会多出警告图标和安装服务的扳手图标;以管理员身份运行 Clash Verge Rev 同样可以打开2。
- sub-config-rejected-by-core:打开虚拟网卡模式时,客户端会重新生成配置(订阅内容再经过覆写配置与脚本处理),并用内核校验;校验不通过,这次打开就失败、开关弹回,新配置也不会交给内核2。内核解析配置出错时,校验输出里带
test failed,它前面那一行是具体原因3。更新正在用的订阅时走的也是这套校验,所以同一个配置问题会让这两件事都失败;订阅那一侧按Clash Verge Rev 订阅更新失败排查。 - tun-core-blocked-by-firewall:使用虚拟网卡模式,需要自己在系统防火墙里放行内核 verge-mihomo 和 verge-mihomo-alpha1。
- tun-extra-adapters-conflict(Windows):系统里有多个网卡,网段与配置里的规则冲突时,打开虚拟网卡模式后网络会异常;官方给的办法是删除多余的网卡4。
适用范围里的「已验证」,指按 Clash Verge Rev 2.5.2 的源码与官方文档逐条核对过,没有在客户端上实际操作过。
取证
- tun-switch-clickable:在「设置」页,「虚拟网卡模式」开关能点吗?(点不了时,这一行会多出一个警告图标,鼠标移上去提示「TUN 模式需要安装服务模式或管理员模式」) pass → tun-switch-holds;fail → tun-service-not-installed;unknown → escalate
- tun-switch-holds:打开「虚拟网卡模式」后,开关能保持打开吗?(开关弹回、并弹出一段带
test failed的报错,算不能;弹回了但报错里没有test failed,算无法判断) pass → tun-core-firewall-allowed;fail → sub-config-rejected-by-core;unknown → escalate - tun-core-firewall-allowed:系统防火墙里放行了内核程序 verge-mihomo 和 verge-mihomo-alpha 吗? pass → tun-only-expected-adapters;fail → tun-core-blocked-by-firewall;unknown → escalate
- tun-only-expected-adapters:网络设置里的网卡都还在用吗?(只适用于 Windows,用 macOS 请选无法判断。正在上网用的网卡、Clash Verge Rev 的虚拟网卡、你确认在用的网卡都算在用;有你确认已经不用的网卡,算不是;有用途拿不准的网卡,算无法判断) pass → escalate;fail → tun-extra-adapters-conflict;unknown → escalate
原因
- tun-service-not-installed(可能性 high)→ 修复 install-service-mode
- sub-config-rejected-by-core(可能性 medium)→ 修复 fix-sub-config-rejected-by-core
- tun-core-blocked-by-firewall(可能性 medium)→ 修复 allow-core-in-firewall
- tun-extra-adapters-conflict(可能性 low)→ 修复 remove-extra-adapters
修复
install-service-mode
- 在「设置」页「虚拟网卡模式」这一行,点鼠标移上去提示「安装服务」的扳手图标,按系统弹窗授权。装的是一个以管理员权限拉起内核的服务。 验证:tun-switch-stays-on
fix-sub-config-rejected-by-core
- 在报错提示里找到
test failed前面那一行,那是内核解析配置时给出的具体原因;拿它到「mihomo 内核报错信息表」里查是哪一类问题。 - 交给内核校验的配置,是订阅下载来的内容再经过「扩展覆写配置」「扩展脚本」(以及全局的这两项)处理的结果。那一行指向你自己改过的覆写或脚本时,先撤掉那处改动;指向订阅下发的内容时,把那一行原文发给订阅服务商,请对方提供当前内核能通过校验的配置。 验证:verify-core-accepts-config
allow-core-in-firewall
- 在系统防火墙设置里放行 verge-mihomo 和 verge-mihomo-alpha 两个内核程序,再重新打开「虚拟网卡模式」。 验证:tun-site-opens
remove-extra-adapters
- 打开 Windows 的网络设置,删除确认已经不用的多余网卡,再重新打开「虚拟网卡模式」。用途拿不准的网卡不要删。 验证:tun-site-opens
验证
- tun-switch-stays-on(人):服务装好后,在「设置」页打开「虚拟网卡模式」,关掉「系统代理」;在「代理」页确认选的是「规则」或「全局」、出口是一个节点,再打开一个平时打不开、按配置应该走节点的网页。 预期:开关保持打开,网页正常显示。 通过 → resolved;失败 → tun-switch-holds;无法判断 → escalate
- tun-site-opens(人):保持「虚拟网卡模式」打开,关掉「系统代理」;在「代理」页确认选的是「规则」或「全局」、出口是一个节点,再打开一个平时打不开、按配置应该走节点的网页。 预期:网页正常显示。 通过 → resolved;失败 → escalate;无法判断 → escalate
- verify-core-accepts-config(人):改好后,在「订阅」页右键这个订阅点「更新」;如果原本是「虚拟网卡模式」开不了,再打开一次,然后关掉「系统代理」,在「代理」页确认选的是「规则」或「全局」、出口是一个节点,打开一个平时打不开、按配置应该走节点的网页。
预期:更新不再报错,订阅卡片上的更新时间变成刚才(鼠标移到那段文字上,提示的是「点击查看上次更新时间」,说明显示的是下次更新,先点一下切回来);原本是虚拟网卡模式开不了的,再打开后开关保持打开、没有带
test failed的报错,而且那个网页能正常显示(开关能保持打开但网页打不开,说明还有别的原因,比如防火墙没有放行内核,这一步不算通过)。 通过 → resolved;失败 → escalate;无法判断 → escalate
相关条目
来源
- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理 / Tun 模式;服务模式)
- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(打开TUN模式后网络异常)
- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/hooks/use-system-state.ts、src/components/shared/proxy-control-switches.tsx、src-tauri/src/feat/config.rs、src-tauri/src/config/config.rs、src-tauri/src/core/manager/config.rs、src-tauri/src/core/validate.rs、src/locales/zh/settings.json)
- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(main.go(-t 校验失败的输出))
最后修订:e2adf13 2026-09-18