解决:打开WSL2时显示错误代码CreateInstance/CreateVm/ConfigureNetworking/0x8007054f
今天打开 WSL2 的时候出现报错:
wsl: 出现了内部错误。 错误代码: CreateInstance/CreateVm/ConfigureNetworking/0x8007054f wsl: 无法配置网络 (networkingMode Mirrored),回退到 networkingMode None。 wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。 之前出现类似问题都是管理员身份打开终端然后:
wsl --shutdown wsl 就行了,再不济重启大法秒了。但是这次两种方法都不行。
试了网上一些方法,最后发现对于新版 WSL 其实只需要:
wsl --shutdown wsl --update就好了。
更新:又遇到了一样的报错,且上面的简单方法这次没用了,还是老老实实搞吧。
根据报错 无法配置网络 (networkingMode Mirrored),回退到 networkingMode None。 ,可以得知:
- WSL 正在尝试使用 Mirrored(镜像)网络模式
- 该模式初始化失败
- WSL 自动回退,但回退也不完整,最终网络不可用或异常
随后紧跟这个在 WSL 中常见的报错:wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
这通常是因为Windows 上配置了代理,例如:Clash / v2rayN / Surge / Proxifier 等;系统代理地址是:127.0.0.1:7890、localhost:1080 等,而 WSL2 无法在 NAT / Mirrored 模式下直接使用 localhost 代理,因此 WSL 认为这是一个不受支持的网络配置组合。
至于 错误代码: 0x8007054f ,这是 Windows 的网络/虚拟化层错误码,通常由以下触发:
- Hyper-V 虚拟交换机配置失败
- Mirrored 网络与代理 / 防火墙 / VPN 冲突
所以总的来说: 只要你在 Windows 开了本地代理,WSL Mirrored 网络就极易报这个错 。我一开始的解决方法进行 wsl --update ,因此估计是新版本改用了 Mirrorwed 模型。
因此,最稳健的解决方案还是改回 NAT 网络模式。编辑配置文件: C:\Users\<你的用户名>\.wslconfig ,我原本内容是针对 Mirrored 模式的:
[experimental]autoMemoryReclaim=gradual networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true 直接改成:
[wsl2]networkingMode=nat autoProxy=false 然后重启 WSL:
wsl --shutdown wsl 就好了。
另外,如果不想写配置文件,直接在 wsl settings 中应该也能改:

