我有一个 CentOS 系统,它通过 DHCP 检索其上游 DNS 服务器。
我想在此机器上运行 DNSMasq 并将其用作服务器来解析一些主机名以进行开发。
问题是当我的系统启动时,上游 DNS 服务器会加载到 /etc/resolv.conf 中,然后加载 ifcfg-enp0s3 设置中的 DNS1 条目。这是一个问题,因为当我查询内部开发名称时,它会尝试访问上游 DNS 服务器,而不是首先检查 DNSMasq。我需要 DNSMasq 服务器位于 /etc/resolv.conf 的顶部,并且 dhcp 加载的服务器位于 resolv.conf 的底部,以便 DNSMasq 能够正常工作。
有什么简单的方法可以做到这一点吗?
答案1
是的,有一个简单的方法可以做到这一点。将行添加到/etc/dhcp/dhclient.conf
,如下例所示,将 DNS 服务器 1.2.3.4 添加到解析器列表中。
prepend domain-name-servers 1.2.3.4 ;
前置语句
前置 [ 选项声明 ] ;
如果对于某些选项集,客户端应该使用您提供的值,然后使用服务器提供的值(如果有),这些值可以在 prepend 语句中定义。 prepend 语句只能用于允许给出多个值的选项。此限制不是强制执行的 - 如果您忽略它,行为将是不可预测的。