带有 DHCP 和本地 DNS 服务器的 resolv.conf

带有 DHCP 和本地 DNS 服务器的 resolv.conf

我已经在我的机器上安装了本地 DNS 服务器 (coredns) 并通过设置激活它

name_servers=127.0.0.1

在resolvconf.conf 内。现在我切换网络,并希望 DHCP 在另一个文件中提供解析设置(至少是名称服务器),我可以通过添加外部 DNS 服务器将请求转发到其中。

我如何知道resolvconf.conf设置名称服务器 127.0.0.1/etc/resolv.conf但将 dhcp 提供的数据写入 /run/resolv/dhcp 之类的内容?

我正在运行 Manjaro

答案1

我假设是 Debian 或相关发行版;其他发行版的设置可能resolvconf有所不同。

您需要在 coredns 服务器启动时执行此命令:

echo nameserver 127.0.0.1 | /sbin/resolvconf -a lo.coredns

当它停止时是这样的:

/sbin/resolvconf -d lo.coredns

resolvconf将自动将 127.0.0.1 设置为首选服务器,/etc/resolv.conf并且不会添加任何其他服务器,直到收到 coredns 守护进程已停止的信息(通过上面的第二个命令)。

然后,您可以编写自己的附加脚本,将/etc/resolvconf/update.d/DHCP 提供的信息写入其他一些配置文件(例如 的配置文件coredns)。在 Debian 9 中,这正是resolvconf相互 BIND 和集成的方式。

或者,您可以使用目录中的文件/run/resolvconf/interface/来获取 DHCP 提供的 DNS 服务器信息。

答案2

写入 DHCP 数据是您所使用的 DHCP 客户端的一项功能。通常是dhclient.你会想要结帐dhclient-script。看

  • man dhclient-script
  • man dhclient.conf

并检查和编辑,

  • /sbin/dhclient-script(这就是写的东西resolv.conf

相关内容