WSL网络配置失败致Homebrew无法安装求助
WSL网络配置失败(Error 0xffffffff)及DNS解析问题解决方案
以下是针对你遇到的WSL网络配置错误(CreateInstance/CreateVm/ConfigureNetworking/HNS/0xffffffff)及DNS解析失败问题的分步解决方法:
1. 重置WSL核心网络组件
- 关闭所有WSL实例:
wsl --shutdown - 打开管理员权限的PowerShell,执行以下命令重置Windows网络栈:
netsh int ip reset all netsh winsock reset netsh advfirewall reset - 重启WSL管理服务:
Get-Service LxssManager | Restart-Service
2. 切换到WSL2并重置虚拟机
- 检查当前WSL分发版的版本:
wsl -l -v - 如果你的Ubuntu是WSL1版本,转换为WSL2:
wsl --set-version Ubuntu 2 - 若上述操作无效,尝试注销并重新初始化Ubuntu:
执行后重新打开Ubuntu终端,系统会自动完成初始化。wsl --unregister Ubuntu
3. 切换WSL网络模式为桥接(替代NAT)
- 关闭WSL:
wsl --shutdown - 在Windows用户目录下创建或编辑
.wslconfig文件(路径:%USERPROFILE%\.wslconfig),添加以下配置:[wsl2] networkingMode=bridged vmSwitch=Default Switch - 启动WSL后,测试网络连通性:
ping 8.8.8.8 ping github.com
4. 检查Windows防火墙权限
- 打开「Windows Defender防火墙」→「允许应用或功能通过Windows Defender防火墙」
- 找到「适用于Linux的Windows子系统」,确保勾选「专用」和「公用」网络权限,点击「确定」保存。
5. 永久配置WSL DNS
- 关闭WSL,在Ubuntu终端中编辑
/etc/wsl.conf:
添加以下内容:sudo nano /etc/wsl.conf[network] generateResolvConf = false - 重启WSL后,删除自动生成的DNS配置文件:
sudo rm /etc/resolv.conf - 创建自定义DNS配置:
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf' sudo bash -c 'echo "nameserver 8.8.4.4" >> /etc/resolv.conf' - 锁定文件防止被WSL自动覆盖:
sudo chattr +i /etc/resolv.conf
内容的提问来源于stack exchange,提问作者user27664154
相关产品推荐
相关产品推荐

