如何停止系统解析的切换 DNS 服务器

如何停止系统解析的切换 DNS 服务器

我有一个本地 DNS 解析器配置,但我不确定为什么我的 DNS 解析器会切换。这是我的配置

#cat /etc/systemd/resolved.conf

[Resolve]
DNS=W.X.Y.Z
#FallbackDNS=
Domains=example.com
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
#DNSStubListener=yes
#ReadEtcHosts=yes

#cat /etc/resolve.conf

nameserver 127.0.0.53
options edns0 trust-ad
 search example.com test.xxnet.com

但当我看到#systemd-resolve --status

Current DNS Server: A.B.C.D
     DNS Servers: W.X.Y.Z
                  A.B.C.D
      DNS Domain: example.com
                  test.xxnet.com

我这里有3个问题:

  1. 为什么即使我在 /etc/resolv.conf 中使用了超时 5,DNS 服务器仍在切换?
  2. ABCD从哪里来?
  3. 如何停止切换或仅使用 WXYZ 作为 DNS 解析器?

感谢您的支持。

答案1

来自man systemd-resolved,强调我的:

联系的 DNS 服务器由以下确定:

中的全局设置/etc/systemd/resolved.conf

文件中的每个链接静态设置/etc/systemd/network/*.network(如果systemd-networkd.service(8)使用),

通过 DHCP 接收的每链路动态设置,

通过提供的信息resolvectl(1)

其他系统服务提供的任何 DNS 服务器信息。

生成的要使用的 DNS 服务器列表是以下内容的组合全部这些来源。因此,您的 DHCP 服务器可能指定 ABCD 作为要使用的 DNS 服务器和test.xxnet.com要使用的域。这使得 ABCD 成为连接特定的 DNS 服务器,这也使其成为该连接的首选 DNS 服务器。

这也意味着*.example.com将从 ABCD 和 WXYZ 查询名称,但*.test.xxnet.com仅从 ABCD 查询名称,因为搜索域test.xxnet.com(可能)也由特定于连接的 DNS 配置提供(由 DHCP 接收)。

您可能必须告诉 DHCP 客户端忽略 DHCP 服务器提供的 DNS 配置。

如何做到这一点取决于两件事:

  • 您使用的是哪个 DHCP 客户端? (dhclient并且dhcpcd很常见)

  • NetworkManager您是直接配置 DHCP 客户端,还是由其他网络配置管理系统配置?

编辑你的问题提供此信息,如果可以的话,我会相应地更新此答案。

相关内容