我使用 Fedora 36 作为我的日常桌面计算机,我尝试做一些我认为相当简单的事情,但我在网上找不到其他人为此提供正确的配置。
基本上,一切都在标题中:我想找到正确的systemd-resolved
配置来使用我的本地绑定服务器作为 DNS(到目前为止没什么复杂的),但是也回退到任何 DHCP 提供的 DNS。
NetworkManager
到目前为止,我尝试的是首先使用以下配置强制在 DHCP 提供的 DNS 中提供本地 Bind 实例:
# /etc/dhcp/dhclient.conf
prepend domain-name-servers 127.0.0.1;
require subnet-mask, domain-name-servers;
# /etc/NetworkManager/conf.d/dhcp-client.conf
[main]
dhcp=dhclient
但这是行不通的。systemd-resolved
仍然在我的本地绑定服务器之前查询 DHCP 提供的 DNS。
我找到了一个systemd-resolved
查询本地绑定服务器的配置:
# /etc/systemd/resolved.conf
DNS=127.0.0.1 ::1
Domains=~.
但我不确定它是否会回退到 DHCP 提供的 DNS。
答案1
如果您正在运行自己的名称服务器,我实际上建议您systemd-resolved
完全禁用(众所周知,无论如何它都会破坏某些 DNS 功能,例如 DNSSEC)。
systemctl disable systemd-resolved
systemctl stop systemd-resolved
systemctl mask systemd-resolved
然后你可以控制你的 resolv.conf 文件,或者使其基于 DHCP:
rm -f /etc/resolv.conf
ln -s /run/NetworkManager/resolv.conf /etc/resolv.conf