Cover image for WSL2 Archlinux镜像网络模式无法访问网络的问题

WSL2 Archlinux镜像网络模式无法访问网络的问题

字数 555
阅读
访客

时间轴

时间轴

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. 可以尝试重启
1
wsl --shutdown
  1. 尝试更新WSL后重试
1
wsl --update
  1. 或者在WSL Settings中先切换到NAT模式,然后能成功打开wsl后切换回Mirrored模式

  2. 如果之前关闭了 DNS 自动生成,可尝试重新开启,即把/etc/wsl.conf中的generateResolvConf设为true

评论加载中…