文章

WSL 无法配置 networkingMode Mirrored

更新: 把该修的问题都修了之后依然可能复现,可能当时好了,过一段时间又坏了,估计要重装电脑才能解决了。 目前的方案是回到NAT模式,…

· 更新于 2026/3/22 · 4 分钟阅读
目录
  1. 原因
  2. 解决
  3. 查端口
  4. 重置网络设置
  5. 修复 swap.vhdx

更新: 把该修的问题都修了之后依然可能复现,可能当时好了,过一段时间又坏了,估计要重装电脑才能解决了。 目前的方案是回到NAT模式,打开自动代理和自动端口映射之后实际上跟 Mirrored 也没区别了。 Pasted image 20260322232928 然后配套修改一下代理,通过局域网地址使用本地代理而不是使用localhost,这样WSL才能连上。 在Clash Verge上,这样设置: Pasted image 20260322233237

原因

根据 Error code: CreateInstance/CreateVm/ConfigureNetworking/0x8007054f · Issue #12351 · microsoft/WSL,有三种可能:

  1. Windows 与 Linux 端口冲突
  2. WSL/HNS 网络配置错乱
  3. swap.vhdx 状态异常

解决

可以直接按这个方式全试一遍,说不定就能解决了。

查端口

一般的 Linux 发行版,在默认情况下可能会占用的主要是 53 端口,在 Linux 上可以使用 ss tuln 查询: Pasted image 20260316005956 我使用的发行版占用了 53 和 5355 两个端口,查询到 Windows 只占用了53,处理53就好。 在Windows上使用 netstat -ano | findstr 53 查询进程。 排查结论是: Pasted image 20260316010423

重置网络设置

直接在 powershell 敲:

wsl --shutdown
# restart HNS services
net stop hns
net start hns

# reset WSL network configurations
netsh winsock reset
netsh int ip reset

记得用管理员终端

修复 swap.vhdx

我们需要清理 %TEMP%\<GUID>\swap.vhdx。 在 WSL 启动的情况下,文件资源管理器访问: Pasted image 20260316010933 找到类似 2FF0006A-6F05-45AD-86A2-2AB40F74ED43 这样的一个<GUID>文件夹,如果发现里面只有一个 swap.vhdx 就对了。 然后操作:

  1. 尝试删除父<GUID>文件夹swap.vhdx。如果提示占用,请不要点击“重试”。
  2. Powershell 执行 wsl --shutdown
  3. 在执行完毕的那一刻点重试,顺利删除就成功了 不过我没成功过,每次都被WSL自己删了,但可以试试。

最后重启电脑,再次打开 WSL 测试,大概率没问题了。