Windows11 WSL2 镜像模式下 DNS 解析失效(Temporary failure resolving)

1. 现象描述

在 Windows 11 中开启了 WSL2 的镜像网络模式 (Mirrored Mode) 后,虽然系统具备基础的连通性(如可以 Ping 通外网 IP),但在执行 sudo apt update或使用域名访问网页时,频繁出现如下错误:

复制代码
Temporary failure resolving 'mirrors.tuna.tsinghua.edu.cn'
Err:2 http://security.ubuntu.com/ubuntu noble-security InRelease

通过 cat /etc/resolv.conf发现,DNS 指向了一个奇怪的地址:

复制代码
nameserver 10.255.255.254

2. 根因分析

在 WSL2 传统模式下,网络通过 NAT 转发,WSL 依赖虚拟网关进行 DNS 转发。而在 Win11 镜像模式下,WSL 与 Windows 共享网络栈,理应直接继承宿主机的 DNS 配置。

导致失效的三个核心原因:

  1. 解析路径死循环 :WSL 自动生成的 10.255.255.254在镜像模式下往往无法正确回传至 Windows 的解析器。

  2. 配置冲突 :WSL 的内置 dnsTunneling特性与部分 VPN 或第三方防火墙不兼容。

  3. 遗留逻辑 :系统重启后,WSL 默认会重写 /etc/resolv.conf,覆盖掉用户手动设置的有效 DNS。

3. 解决方案(标准化流程)

第一步:关闭 WSL 自动生成 DNS 功能

我们需要接管 DNS 的控制权,防止 WSL 在每次启动时"自作聪明"地修改配置。

编辑 WSL 配置文件:

复制代码
sudo nano /etc/wsl.conf

添加或修改如下内容:

复制代码
[network]
generateResolvConf = false

第二步:手动配置高可用 DNS 服务器

由于原文件通常是软链接,需要先删除再重建物理文件。

复制代码
# 删除软链接
sudo rm /etc/resolv.conf

# 写入可靠的 DNS (阿里 DNS & Google DNS)
sudo bash -c 'echo "nameserver 223.5.5.5" > /etc/resolv.conf'
sudo bash -c 'echo "nameserver 8.8.8.8" >> /etc/resolv.conf'

# (可选) 锁定文件防止被意外修改
sudo chattr +i /etc/resolv.conf

第三步:优化 .wslconfig 选项

在 Windows 宿主机用户目录下(%UserProfile%\.wslconfig),确保镜像模式配置科学。

复制代码
[wsl2]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

第四步:彻底重启 WSL 实例

在 Windows PowerShell 中执行命令,确保配置被重新加载:

复制代码
wsl --shutdown

4. 进阶排查建议

如果配置后仍不稳定,建议检查以下两项:

  • 防火墙放行:镜像模式下,Windows 防火墙可能拦截 UDP 53 端口。管理员权限运行:

    复制代码
    New-NetFirewallRule -DisplayName "WSL DNS" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 53
  • VPN 干扰:部分代理软件开启"系统代理"或"TUN 模式"时会强制劫持 DNS。建议在开发时将代理设置为"规则模式"而非"全局模式"。

5. 总结

WSL2 的镜像模式极大方便了本地开发,但也带来了复杂的网络交互。通过"禁用自动生成 + 手动锁定 DNS"的组合拳,可以解决 90% 以上的域名解析失败问题。

相关推荐
春日见10 小时前
如何入门端到端自动驾驶?
linux·人工智能·算法·机器学习·自动驾驶
dys_Codemonkey10 小时前
如何在树莓派上用 VS Code 优雅直连内部的 Ubuntu 子系统/容器用来访问容器内的文件和代码?
linux·运维·ubuntu·树莓派
炸膛坦客10 小时前
Linux - Ubuntu - PC端:(五)shell 操作(终端命令,2026)→ 3)基础命令,27 个常用命令
linux·ubuntu
·醉挽清风·11 小时前
学习笔记—Linux—文件IO
linux·服务器·学习
宁波阿成11 小时前
OpenClaw 在 Ubuntu 22.04.5 LTS 上的安装与问题处理记录
java·linux·ubuntu·openclaw·龙虾
徐子元竟然被占了!!12 小时前
Linux的cat
linux·运维·服务器
坐吃山猪13 小时前
Python进度条
linux·服务器·python
IMPYLH14 小时前
Linux 的 b2sum 命令
linux·运维·服务器·bash
celeste031014 小时前
Redis Summary
linux·运维·服务器·redis·笔记
Sylvan.C14 小时前
Windows+Ubuntu 双系统安装超详细保姆级教程2026,包括系统安装、英伟达独显驱动安装以及双系统时间同步的所有过程
linux·运维·ubuntu