默认情况下,WSL2 似乎选择 Windows 主机 IP 地址作为其自动配置的 DNS 服务器。
通过检查的内容就可以看出这一点/etc/resolv.conf
。
例如
$ cat /etc/resolv.conf
nameserver 172.21.48.1
如果在地址 处运行 DNS 服务器,那么这没问题172.21.48.1
。在我的特定情况下,此主机是 Windows 10 计算机。它是 WSL2、Docker Desktop 和一些 Docker 容器的主机。
对此的通常“修复”是修改/etc/resolv.conf
,并使用setattr +i
来防止文件被修改。/etc/wsl.conf
还必须更改 以禁用 的自动配置/etc/resolv.conf
。
我怀疑有更好的解决方案。如果主持人172.21.48.1
确实是DNS 服务器,换句话说,如果它运行的是 DNS 服务器软件,那么我猜问题就会得到简单解决,因为 DNS 请求会被正确转发。
有没有办法在 Windows 10 机器上安装 DNS 服务器?我只找到了与 Windows Server 平台相关的信息。
或者,它可能与 DNS 相关的本地网络配置问题。可能Windows 10 主机用于获取 IP 地址信息的 DNS 服务器未正确转发有关应使用哪些 DNS 服务器的信息。(虽然这似乎不太可能。这更可能是 Windows 10 没有将正确的 DNS 服务器地址转发到 WSL2 容器的问题。)