概述
官方参考文档:
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 不会覆盖手动配置的设置。
其它资源
- 详情请查看
dns
man 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