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

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

字数 506
阅读
访客

时间轴

时间轴

2025-10-03

init

本文介绍了 Win11 下 WSL2 Archlinux 镜像网络模式重启后可能无法访问网络的问题,并总结了通过排查网关连通性来区分 DNS 和防火墙故障,进而提供关闭 DNS 自动生成、放行 wsl.exe 防火墙权限及切换网络模式等具体解决方法。

在 Win11 + WSL2 archlinux 的 Mirrored 网络模式下,重启后有概率会触发无法 WSL 访问网络但 Windows 可以访问的问题。

环境
环境

wsl 配置

1
2
3
4
5
6
7
8
9
[wsl2]
dnsTunneling=true # DNS隧道(解决某些网络问题)
firewall=true # 启用防火墙集成
autoProxy=true # 自动同步Windows代理设置
networkingMode=Mirrored

[experimental]
hostAddressLoopback=true
bestEffortDnsParsing=true

ping 网关

先确认能不能 ping 通网关。

  • 如果能 ping 通 IP 但不能访问域名 → 是 DNS 问题
  • 连 IP 都 ping 不通 → 是 网络转发 / 网卡 / 防火墙问题
1
ping -c 4 8.8.8.8

DNS 问题

1
2
3
4
sudo emacs /etc/resolv.conf
# 写入如下配置
nameserver 8.8.8.8
nameserver 1.1.1.1

为避免每次重启被覆盖,可以关闭自动生成

1
2
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 加入。再次查看网络是否恢复。

其他

如果出现以下报错:

1
2
3
4
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