WeHack BBS
GNU/Linux的程序是怎么选择DNS服务器的? - 可打印的版本

+- WeHack BBS (https://bbs.wehack.space)
+-- 版块: 计算机技术 (https://bbs.wehack.space/forum-5.html)
+--- 版块: GNU/Linux 讨论区 (https://bbs.wehack.space/forum-6.html)
+--- 主题: GNU/Linux的程序是怎么选择DNS服务器的? (/thread-319.html)



GNU/Linux的程序是怎么选择DNS服务器的? - vimacs - 11-10-2021

我正在定制一个 Arch 的安装盘,做法是把里面的 squashfs 解压之后,用 systemd-nspawn 进入这个 rootfs,然后用 pacman 装软件。在我现在使用的系统下是可以工作的,但是换个机子就不行了,pacman 说解析不了服务器的地址。对比了两个系统的设置,发现我现在的系统用了 dnsmasq,而另一个系统没有。启用了 dnsmasq 就解决了问题,用 dnsmasq -q 记录 DNS 查询,也能看到 systemd-nspawn 里的程序用主机作为 DNS 来做域名查询。

使用 systemd-nspawn 进入 archiso 之后,可以发现里面的 /etc/resolv.conf 指向一个不存在的本来应该由 systemd-resolved 产生的文件,所以里面的程序应该不是查 resolv.conf 来找 DNS 服务器的。我觉得程序有可能会在这种情况下会尝试用网关来做 DNS 服务器。