如何在加载时重新排序 /etc/resolv.conf

alf*_*ema 2 dns centos networkmanager dnsmasq resolv.conf

我有一个 CentOS 系统,它通过 DHCP 检索其上游 DNS 服务器。

我想在这个盒子上运行 DNSMasq 并将它用作服务器来解析一些用于开发的主机名。

问题是当我的系统启动时,上游 DNS 服务器被加载到 /etc/resolv.conf 中,然后我的 ifcfg-enp0s3 设置中的 DNS1 条目被加载。这是一个问题,因为当我查询内部开发名称时,它会尝试转到上游 DNS 服务器,而不是先检查 DNSMasq。我需要 DNSMasq 服务器位于 /etc/resolv.conf 的顶部,而 dhcp 加载的服务器位于 resolv.conf 的底部,以便 DNSMasq 能够正常工作。

有什么简单的方法可以做到这一点?

ste*_*eve 5

是的,有一种简单的方法可以做到这一点。/etc/dhcp/dhclient.conf在下面的示例中添加一行,将 DNS 服务器 1.2.3.4 添加到解析器列表中。

prepend domain-name-servers 1.2.3.4 ;
Run Code Online (Sandbox Code Playgroud)

前置语句

前置 [选项声明] ;

如果对于某些选项集,客户端应使用您提供的值,然后使用服务器提供的值(如果有),则可以在 prepend 语句中定义这些值。prepend 语句只能用于允许给出多个值的选项。此限制不是强制执行的 - 如果您忽略它,行为将是不可预测的。

请参阅dhclient 手册页