WSL2 无法在 Windows 11 上访问互联网

WSL2 无法在 Windows 11 上访问互联网

我全新安装了 Windows 11,并且在 wsl2 中安装了 ubuntu 20.04。

当我尝试执行更新sudo apt update,甚至ping google.com我得到

暂时无法解析“archive.ubuntu.com”

名称解析暂时失败

错误。

我试过了:

  • 使用“允许应用程序通过防火墙”并选择允许 wsl 通过 Windows FirefallC:\Windows\System32\wsl.exe

  • 在防火墙中为端口 3390 添加了入站规则

  • 将网络配置文件设置为“私有”(如果有办法让 wsl 保持正常工作,我更愿意将其保持公开)

  • New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow从谷歌搜索运行

编辑:此时我已经尝试了所有谷歌搜索结果,但仍然没有解决方案。除非是星期一,否则 r/windows11 不会让我发帖(愚蠢)。还尝试在 wsl 上重新安装 ubuntu,但无济于事。

答案1

造成这一问题的原因不止一个。

文章 WSL2 网络问题和 Win 10 快速启动 建议在 Windows 中禁用快速启动:

在此处输入图片描述


其他 解释 切换网络(例如在工作和家庭之间)会使 WSL 感到困惑。解决方案是运行.bat包含以下内容的文件:

wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
netsh winsock reset
shutdown /r

还有另一个 解释 是 Windows 自动生成一个resolv.conf具有错误名称服务器的文件。

为了防止这种情况发生,请运行以下命令:

sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf

答案2

只是想提醒大家,Win11 似乎对管理员访问权限非常严格,甚至将 .bat 文件放在 C: 上

话虽如此,只要我以管理员身份执行所有操作,将 etc/resolv.conf 重写为 8.8.8.8 就可以起作用,包括对我来说,从 Win11 任务栏以管理员身份启动我的 WSL2 Kali CLI。

答案3

将此设置添加到您的.wslconfig文件(在您的 Windows 主目录中)应该可以在 WSL 虚拟机中启用网络支持:

[wsl2]
networkingMode=mirrored

更改后应停止 WSL.wslconfig以使更改生效:wsl --shutdown从 Windows 命令 shell 使用。这是一个相对较新的功能(2023 年 9 月更新),需要版本 22H2(我只在 Windows 11 上测试过它,但可能在最新的 Windows 10 上有效)。详细信息和其他相关配置设置在此处: https://learn.microsoft.com/en-us/windows/wsl/networking

要使用最新的 WSL2 子系统,wsl --update可能需要运行。

在旧版本的 Windows 上,我能够可靠使用且在 Windows 运行 VPN 时也有效的唯一解决方案是使用“wsl-vpnkit”(https://github.com/sakai135/wsl-vpnkit)。

相关内容