/etc/default/bind9 中的 RESOLVCONF=yes

/etc/default/bind9 中的 RESOLVCONF=yes

设置 DNS 服务器时,Ubuntu 文档建议在 /etc/default/bind9 中更改RESOLVCONF=noRESOLVCONF=yes

参考: https://help.ubuntu.com/stable/serverguide/dns-troubleshooting.html

但它没有解释它到底是做什么的。而且,我只在“故障排除”页面上找到了它;而不是作为配置步骤的一部分。很奇怪。

在阅读了各种资料后,我相信它告诉 systemd-resolved 除了考虑 /etc/netplan/ 文件中配置的其他名称服务器外,还要考虑本地 DNS 服务器(大概是第一个?)。但我真的没有看到任何地方用这么多字来表达这一点。

此外,我找不到任何方法来判断其他地方是否发生了变化。例如,在 /etc/default/bind9 中进行更改并重新启动 bind9 后,networkctl status和的输出似乎都没有变化。systemd-resolve --status

所以,我的问题是:

1) 设置到底起什么作用RESOLVCONF=yes?也就是说,它会改变哪些系统中的哪些行为?

2) 我在哪里可以看到结果?也就是说,我可以在之前和之后运行哪些命令来查看它是否生效,以验证它是否有效,或者更好地了解它在做什么?

3)我可以在哪里找到有关问题 1 和问题 2 的答案的文档?

谢谢!

答案1

实际上,RESOLVCONF=yes/etc/default/bind9使用 systemd 的现代系统上, 不执行任何操作。该行仅用于旧的 bind9 init 脚本,/etc/init.d/bind9,该脚本在 systemd 系统上不被使用。

它过去所做的是使本地安装的 bind9 服务器用作 中的名称服务器/etc/resolv.conf。也就是说,它会放入nameserver 127.0.0.1/etc/resolv.conf它通过resolvconf调用名为 的包中的程序resolvconf(或openresolv,它是 的兼容替代品resolvconf)来实现这一点。

要使用 systemd 实现此配置,您只需启用该bind9-resolvconf服务:systemctl enable --now bind9-resolvconf

在 Debian bullseye 或更高版本(或基于此类的 Debian 衍生产品,如 Ubuntu,或带有反向移植的 bind9 包的 Debian buster)中,使用 bind9 包的版本,该服务已从 重命名为bind9named因此相应的服务为named-resolvconf

我认为除了代码本身之外,没有任何关于此的文档。

答案2

设置 RESOLVCONF=yes 到底有什么作用?也就是说,它会改变哪些系统中的哪些行为?

RESOLVCONF=yes 

它设置一个环境变量,其中 BIND9 被告知运行解析器。当名称服务器监听 localhost(/127.*) 时,解析器允许 resolvconf 将 IP 地址添加到 resolv.conf。

我可以在哪里看到结果?也就是说,我可以在之前和之后运行哪些命令来查看它是否生效,以验证它是否有效,或者更好地了解它在做什么?

more /etc/resolv.conf 

在哪里可以找到关于问题 1 和问题 2 的答案的文档。

除了 bind9 的源代码之外,可能没有这样的事情。Bind9 使用自己的轻量级解析器,并且该设置安排调用该解析器。仅此而已。

相关内容