我有一个 CentOS 系统,它通过 DHCP 检索其上游 DNS 服务器。
我想在这个盒子上运行 DNSMasq 并将它用作服务器来解析一些用于开发的主机名。
问题是当我的系统启动时,上游 DNS 服务器被加载到 /etc/resolv.conf 中,然后我的 ifcfg-enp0s3 设置中的 DNS1 条目被加载。这是一个问题,因为当我查询内部开发名称时,它会尝试转到上游 DNS 服务器,而不是先检查 DNSMasq。我需要 DNSMasq 服务器位于 /etc/resolv.conf 的顶部,而 dhcp 加载的服务器位于 resolv.conf 的底部,以便 DNSMasq 能够正常工作。
有什么简单的方法可以做到这一点?
我需要在我的前面加上/etc/resolv.conf
一个条目。我的界面是enp0s3。所以我创建/etc/dhcp/dhclient-enp0s3.conf
并添加了以下行:
prepend domain-name-servers 127.0.0.2
Run Code Online (Sandbox Code Playgroud)
当我重新启动 CentOS VM 时,NetworkManager 会自动创建此文件: /var/lib/NetworkManager/dhclient-enp0s3.conf
当我发现我可以看到 /etc/dhcp 中的 dhclient-enp0s3.conf 文件被正确读取时:
[root@localhost network-scripts]# cat /var/lib/NetworkManager/dhclient-enp0s3.conf
# Created by NetworkManager
# Merged from /etc/dhcp/dhclient-enp0s3.conf
prepend domain-name-servers 127.0.0.2
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
option ms-classless-static-routes code 249 = array of unsigned integer 8;
option wpad code 252 = string;
also request rfc3442-classless-static-routes;
also request ms-classless-static-routes;
also request static-routes;
also request wpad;
also request ntp-servers;
Run Code Online (Sandbox Code Playgroud)
但是,当我 cat 时/etc/resolv.conf
,前置的名称服务器不会出现在任何地方。我也 …