时间轴
时间轴
2025-10-03
init
本文介绍了在Win11 + WSL2 Archlinux的Mirrored网络模式下,重启后WSL无法访问网络而Windows正常的问题排查方法。首先通过ping网关判断是DNS问题还是网络转发/防火墙问题;若是DNS问题,可关闭自动生成并重启WSL;若是防火墙问题,需将wsl.exe加入Windows防火墙允许列表。此外,还可尝试重启WSL、更新WSL、在NAT与Mirrored模式间切换,或重新开启DNS自动生成等解决方法。
在 Win11 + WSL2 Archlinux 的 Mirrored 网络模式下,重启后有概率会触发 WSL 无法访问网络但 Windows 可以访问的问题。

wsl 配置
123456789 | [wsl2]dnsTunneling=true # DNS隧道(解决某些网络问题)firewall=true # 启用防火墙集成autoProxy=true # 自动同步Windows代理设置networkingMode=Mirrored[experimental]hostAddressLoopback=truebestEffortDnsParsing=true |
ping 网关
先确认能不能 ping 通网关。
- 如果能 ping 通 IP 但不能访问域名 → 是 DNS 问题
- 连 IP 都 ping 不通 → 是网络转发 / 网卡 / 防火墙问题
1 | ping -c 4 8.8.8.8 |
DNS 问题
1234 | sudo emacs /etc/resolv.conf# 写入如下配置nameserver 8.8.8.8nameserver 1.1.1.1 |
为避免每次重启被覆盖,可以关闭自动生成
12 | sudo bash -c "echo '[network]' > /etc/wsl.conf"sudo bash -c "echo 'generateResolvConf = false' >> /etc/wsl.conf" |
重启 WSL
1 | wsl --shutdown |
查看网络是否恢复
防火墙问题
打开 Windows 安全中心的防火墙和网络保护:
点击允许应用通过防火墙,将 C:\Windows\System32\wsl.exe 加入。再次查看网络是否恢复。
其他
如果出现以下报错:
1234 | wsl: 出现了内部错误。错误代码: CreateInstance/CreateVm/ConfigureNetworking/0x8007054f wsl: 无法配置网络 (networkingMode Mirrored),回退到 networkingMode None。 wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。 |
- 可以尝试重启
1 | wsl --shutdown |
- 尝试更新WSL后重试
1 | wsl --update |
或者在WSL Settings中先切换到NAT模式,然后能成功打开wsl后切换回Mirrored模式
如果之前关闭了 DNS 自动生成,可尝试重新开启,即把
/etc/wsl.conf中的generateResolvConf设为true
