Clash Verge / Mihomo 开启 TUN 无法创建虚拟网卡:VMware 残留导致 Code 56

Contersion 发布于 5 天前 11 次阅读


说明:本文由 AI 协助整理生成。
内容基于本人实际排障过程、日志记录以及文中注明来源的社区资料整理而成。文中涉及 VMware、Wintun、Windows 网络驱动与注册表的操作具有一定风险,请在执行前自行确认环境并做好备份。
本文主要作为个人技术记录与问题复盘使用,不保证适用于所有 Windows / Clash Verge / VMware 环境。


Clash Verge TUN 无法创建虚拟网卡:最终确认是 VMware 残留导致的 Code 56 冲突

最近在 Windows 上使用 Clash Verge Rev 时遇到一个比较折腾的问题:

Clash Verge 原本一直正常使用,但在连续快速切换几次 TUN 模式后,TUN 突然彻底失效。最终排查确认,问题根因是 VMware 网络组件卸载/残留不干净,导致 Windows 网络设备类配置冲突,Wintun 虚拟网卡无法正常创建。

我按照社区提供的方法清理 VMware 相关文件、虚拟网卡和注册表残留后重启电脑,Clash Verge 的 TUN 模式立即恢复正常。

本文记录完整现象、定位过程和解决方法,供遇到类似问题的人参考。


一、故障现象

最开始只是误操作,连续点了几次 Clash Verge 的 TUN 开关。

随后开始出现:

Configuration validation is already running

之后即使重启 Clash Verge、重启 Windows,问题仍然存在。

进一步表现为:

  • Clash Verge 的 TUN 开关可以打开;
  • 但实际上没有流量进入 TUN;
  • ncpa.cpl 中找不到 Mihomo / Meta Tunnel 虚拟网卡;
  • 设备管理器里也看不到正常工作的 Wintun 网卡;
  • 修改 Clash Verge 设置时可能继续出现配置校验异常;
  • Mihomo 日志不断提示 TUN 创建失败。

最关键的日志是:

[TUN] default interface changed by monitor, => 以太网

Start Tun interface timeout:
The device is not ready for use. [retrying 1/3]

随后会继续重试:

Start Tun interface timeout:
The device is not ready for use. [retrying 2/3]

Start Tun interface timeout:
The device is not ready for use. [retrying 3/3]

Start TUN listening error:
configure tun interface: The device is not ready for use.

Clash Verge Rev 社区中已经有人遇到完全相同的问题:


二、根因:VMware 网络组件残留导致 Windows Code 56

最终确认,这次问题并不是 Clash Verge 配置损坏,也不是 Mihomo 内核本身有问题,而是:

VMware 网络组件残留导致 Windows NET Class Configuration 异常,使 Wintun 虚拟网卡无法完成初始化。

进一步查看 Windows 的设备安装日志:

C:\Windows\INF\setupapi.dev.log

可以看到 Wintun 驱动实际上已经成功安装:

Driver package catalog is valid.
Success: File is signed in catalog.
Registered driver package ... with 'oem135.inf'
Created new service 'wintun'.
Hardlinking ... wintun.sys
Driver configuration complete.

说明:

  • wintun.inf 没问题;
  • 驱动签名正常;
  • wintun.sys 正常;
  • Wintun Service 正常创建;
  • Mihomo 也确实发起了虚拟网卡创建。

真正失败的位置在这里:

Start: SWD\WINTUN\{...}

Device ... pending start:
Device has problem: 0x38 (CM_PROB_NEED_CLASS_CONFIG)

0x38 即十进制 56,对应设备管理器中的:

Windows 仍在设置此设备的类配置。(代码 56)

Microsoft 官方说明:

也就是说:

Mihomo
  ↓
调用 Wintun
  ↓
Windows 创建虚拟网络设备
  ↓
Windows 开始执行 NET Class Configuration
  ↓
VMware 残留网络组件发生冲突
  ↓
设备停留在 Code 56
  ↓
Wintun 无法进入 Ready 状态
  ↓
Mihomo 等待超时
  ↓
The device is not ready for use

所以表面看起来是 Mihomo / Wintun 创建失败,实际上失败的是更底层的 Windows 网络设备类配置。


三、Clash Verge 社区已经确认过 VMware 残留问题

Clash Verge Rev Issue #1589 中,有用户明确遇到了相同的 Code 56。

社区用户 ydnkw 表示,设备管理器显示:

Windows 仍在设置此设备的类配置。(代码 56)

删除 VMware 残留注册表项后恢复正常:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b}

原帖:

另一位社区用户 gitlover1517 进一步指出:

电脑之前安装过虚拟网卡,但相关软件没有卸载干净,会导致系统检测冲突,而这种情况通常由 VMware 引起。

其处理方式包括:

  • 停止 VMware 相关服务;
  • 卸载 VMware;
  • 删除 VMware 虚拟网卡;
  • 清理 VMware 注册表残留;
  • 最终删除隐藏的 VMware Bridge 相关 CLSID。

原帖:

之后还有其他用户再次验证同一方案有效:

所以这并不是单一机器的偶发现象。


四、我的实际解决方法

我的机器上最终也是按照 VMware 这个方向处理。

核心就是:

把 VMware 遗留的网络组件、相关文件、虚拟网卡以及注册表项清理干净,然后重启 Windows。

重启完成后,Clash Verge 再次开启 TUN,Mihomo / Meta Tunnel 虚拟网卡可以正常创建,TUN 网络恢复正常。


1. 停止 VMware 相关服务

按:

Win + R

输入:

services.msc

停止仍然存在的 VMware 相关服务。

也可以用 PowerShell 查看:

Get-Service | Where-Object {
    $_.Name -match "VMware|VMnet|VMAuthd" -or
    $_.DisplayName -match "VMware"
}

2. 卸载 VMware

如果当前已经不需要 VMware,先正常卸载:

设置
→ 应用
→ 已安装的应用
→ VMware Workstation / VMware Player
→ 卸载

不要一开始就直接删除 VMware 安装目录。


3. 删除 VMware 残留虚拟网卡

打开:

devmgmt.msc

进入:

设备管理器
→ 查看
→ 显示隐藏的设备
→ 网络适配器

如果已经确认不再使用 VMware,可以清理类似:

VMware Virtual Ethernet Adapter for VMnet1
VMware Virtual Ethernet Adapter for VMnet8

等 VMware 网络设备。

也可以打开:

ncpa.cpl

确认 VMware 虚拟网卡是否还有残留。


五、关键步骤:删除 VMware Bridge 残留注册表项

真正解决 Code 56 的关键项是:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\
{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b}

建议先备份

管理员 CMD:

reg export "HKLM\SOFTWARE\Classes\CLSID\{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b}" "%USERPROFILE%\Desktop\vmware-bridge-backup.reg" /y

确认备份成功以后再删除。

方法一:注册表编辑器

运行:

regedit

找到:

HKEY_LOCAL_MACHINE
└─ SOFTWARE
   └─ Classes
      └─ CLSID
         └─ {3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b}

删除整个:

{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b}

方法二:命令行

管理员 CMD:

reg delete "HKLM\SOFTWARE\Classes\CLSID\{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b}" /f

该 CLSID 与 VMware Bridge 网络组件残留有关。

除了 Clash Verge 社区之外,VMware / Broadcom 社区也有相关案例:

还有独立排障记录通过 Process Monitor 追踪到了 VMware vmnetbridge.dll 相关残留:


六、清理完成后必须重启

VMware 网络组件、Windows PnP、NDIS 和 Network Class Configuration 都涉及系统级网络状态。

所以删除完成后:

重启 Windows

这一点很重要。

我的机器就是在:

清理 VMware 相关文件 / 网络组件
        ↓
删除 VMware 注册表残留
        ↓
重启 Windows

之后恢复正常。


七、恢复后的验证方法

重启后启动 Clash Verge。

不要连续快速点击 TUN,正常开启一次即可。

查看日志

故障时:

Start Tun interface timeout:
The device is not ready for use.

正常后不会再连续出现这个 15 秒超时。

查看虚拟网卡

PowerShell:

Get-NetAdapter |
Where-Object {
    $_.Name -match "Mihomo|Meta" -or
    $_.InterfaceDescription -match "Wintun|Meta"
}

恢复后应该能看到 Mihomo / Meta Tunnel 对应的虚拟网络设备。


八、为什么重装 Clash Verge / Mihomo 没用

因为根因根本不在 Clash Verge。

真正的问题链路是:

Clash Verge
    ↓
Mihomo
    ↓
Wintun
    ↓
Windows PnP
    ↓
Windows NET Class Configuration
    ↓
VMware 网络组件残留冲突

所以即使:

重装 Clash Verge
重装 Mihomo
重新安装 Clash Verge Service
重新导入订阅
重新配置节点
重置 DNS
重置 Winsock

也可能完全没有效果。

因为只要 VMware 网络组件残留仍然让 Windows 的 NET Class Configuration 卡在 Code 56,新创建的 Wintun 网卡就依然无法完成初始化。


九、连续切换 TUN 不是根因,只是触发了问题

从这次故障过程来看:

VMware 网络组件已经存在残留
        ↓
平时没有明显症状
        ↓
连续快速切换 TUN
        ↓
Mihomo 高频创建 / 删除 Wintun 虚拟网卡
        ↓
触发 Windows 重新执行网络设备 Class Configuration
        ↓
VMware 残留组件冲突暴露
        ↓
Code 56
        ↓
TUN 无法创建

所以连续点 TUN 更像是一个触发条件。

真正的根因还是 VMware 网络组件没有清理干净。


十、如果同时存在 Wintun 幽灵网卡

因为 Mihomo 在 Code 56 状态下不断创建和删除设备,有时还会留下类似:

Meta Tunnel
IsPresent = FALSE
PostInstallInProgress = TRUE

的失效设备。

可以查询:

Get-PnpDevice -Class Net -PresentOnly:$false |
Where-Object {
    $_.FriendlyName -match "Mihomo|Meta Tunnel|Wintun"
} |
Format-Table Status,FriendlyName,InstanceId -AutoSize

如果确认存在已经断开的旧设备,可以根据实际 Instance ID 删除:

pnputil /remove-device "SWD\WINTUN\{实际-GUID}" /force

注意:

Wintun 残留在这个故障里更多是 结果,真正导致新虚拟网卡无法完成初始化的仍然是 VMware / Windows NET Class Configuration 冲突。


十一、Issue 中还有一种 Wintun 驱动残留情况

Clash Verge Rev Issue #1589 中还有用户通过清理 Wintun / WireGuard 驱动残留恢复:

查询:

pnputil /enum-drivers

找到:

Original Name: wintun.inf
Provider: WireGuard LLC

对应的:

oemXX.inf

之后才可以执行:

pnputil /delete-driver oemXX.inf /uninstall /force

注意:

不要直接复制别人电脑上的 oem26.infoem135.inf 等编号。

每台 Windows 的 oemXX.inf 编号都不同。

不过我的实际故障中,即便重新清理和安装 Wintun,问题依旧复现,直到把 VMware 网络组件和注册表残留清理干净并重启 Windows 才彻底恢复。

因此本次问题最终可以明确归因于:

VMware 残留导致的 Windows 网络类配置冲突。


十二、最终结论

如果你的 Clash Verge / Mihomo 出现:

Start Tun interface timeout:
The device is not ready for use.

同时还出现以下特征:

  • TUN 开关能打开但实际上没效果;


  • Mihomo / Meta Tunnel 虚拟网卡没有正常出现;


  • 设备管理器显示 Code 56;


  • setupapi.dev.log 出现:


    CM_PROB_NEED_CLASS_CONFIG

  • 电脑以前安装过 VMware;


  • 卸载 VMware 后仍然保留 VMnet / Bridge / 注册表组件;


那么不要继续反复重装 Clash Verge。

优先清理 VMware 网络组件和注册表残留。

本次实际故障最终就是:

VMware 网络组件残留
        ↓
Windows NET Class Configuration 冲突
        ↓
Wintun 卡在 Code 56
        ↓
Mihomo 虚拟网卡无法创建
        ↓
Clash Verge TUN 失效

完成 VMware 相关文件、网络组件和注册表清理后:

重启 Windows

Clash Verge TUN 随即恢复正常。


参考资料

Clash Verge Rev

  1. Issue #1589:开启 TUN 模式,虚拟网卡没有出现
  2. Code 56,删除 VMware 残留注册表项后恢复
  3. VMware 网络组件残留导致冲突的完整排障记录
  4. 其他用户验证删除 VMware CLSID 后恢复
  5. 清理 VMware 残留并重装网卡驱动后恢复
  6. Wintun / WireGuard 驱动残留清理方案

Microsoft

  1. Code 56 - CM_PROB_NEED_CLASS_CONFIG
  2. PnPUtil

VMware / 其他案例

  1. Broadcom VMware Community:Unable to uninstall VMware Bridge Protocol
  2. Procmon Saves the Day: Solving Hyper-V Network Failure After VMware Uninstall

注册表和网络驱动操作具有一定风险。删除 VMware 网络组件前请先确认自己是否仍需要 VMware,并建议提前建立系统还原点或备份相关注册表项。

此作者没有提供个人介绍。
最后更新于 2026-08-11