概述
官方参考文档:
https://access.redhat.com/solutions/7412
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/manually-configuring-the-etc-resolv-conf-file_configuring-and-managing-networking
默认情况下,网络管理器(NetworkManager)使用来自活跃网络管理器连接配置集的 DNS 设置动态地更新 /etc/resolv.conf 文件。这部分论述了如何在 /etc/resolv.conf 中禁用此功能的不同选项来手动配置 DNS 设置。
解决办法
本篇文章,使用第二个链接方法。
在 NetworkManager 配置中禁用 DNS 处理
这部分论述了如何在 NetworkManager 配置中禁用 DNS 处理来手动配置 /etc/resolv.conf 文件。
流程
作为 root 用户,使用文本编辑器使用以下内容创建
/etc/NetworkManager/conf.d/90-dns-none.conf文件:[main] dns=none重新载入
NetworkManager服务:# systemctl reload NetworkManager注意
重新载入该服务后,NetworkManager 不再更新
/etc/resolv.conf文件。但是该文件的最后内容将被保留。- (可选)从
Generated by NetworkManager中删除/etc/resolv.conf注释以避免混淆。
验证步骤
- 编辑
/etc/resolv.conf文件并手动更新配置。 重新载入
NetworkManager服务:# systemctl reload NetworkManager显示
/etc/resolv.conf文件:# cat /etc/resolv.conf如果您成功禁用了 DNS 处理,NetworkManager 不会覆盖手动配置的设置。
其它资源
- 详情请查看
dnsman page 中的NetworkManager.conf(5)参数描述。
使用符号链接替换 /etc/resolv.conf 来手动配置 DNS 设置
如果 /etc/resolv.conf 是符号链接,NetworkManager 不会自动更新 DNS 配置。这部分论述了如何使用 DNS 配置的其它文件的符号链接替换 /etc/resolv.conf。
先决条件
rc-manager选项没有设置为file。要验证,请使用NetworkManager --print-config命令。
流程
- 创建文件,如
/etc/resolv.conf.manually-configured,并将您的环境的 DNS 配置添加到其中。使用与原来的/etc/resolv.conf相同的参数和语法。 删除
/etc/resolv.conf文件:# rm /etc/resolv.conf创建名为
/etc/resolv.conf的符号链接,引用/etc/resolv.conf.manually-configured:# ln -s /etc/resolv.conf.manually-configured /etc/resolv.conf