Linux系统重启后“/etc/resolv.conf”被还原怎么办?

因为保守dns困扰,我终于找到了这么一篇好文章

https://bbs.huaweicloud.com/forum/thread-116763-1-1.html

问题描述

在重启Ubuntu系统的ECS或者重启网络相关服务后,手动修改的/etc/resolv.conf文件被刷新,nameserver字段被还原成127.0.0.53。

图1 问题现象
《Linux系统重启后“/etc/resolv.conf”被还原怎么办?》

根因分析

Ubuntu系统相关版本默认使用systemd-resolved服务维护DNS,重启云服务器或者重启网络相关服务会导致/etc/resolv.conf文件被刷新成systemd-resolved服务维护的127.0.0.53地址。

处理方法

说明:

在处理前,建议先禁用systemd-resolved服务。

方法一:手动修改/etc/resolv.conf文件。

  1. 以root用户登录ECS。
  2. 关闭并禁用systemd-resolved服务。
  3. systemctl stop systemd-resolved
  4. systemctl disable systemd-resolved
  5. 默认的/etc/resolv.conf是软链接,删除重建为普通文件。
  6. rm -rf /etc/resolv.conf
  7. 编辑/etc/resolv.conf,增加相关DNS配置。
  8. vim /etc/resolv.conf
  9. 通过添加自定义的nameserver参数增加DNS配置,如下所示:
  10. nameserver 100.125.1.250
  11. nameserver 100.125.129.250
  12. 将/etc/resolv.conf配置文件加锁,防止被dhcp或者其他服务更改。
  13. chattr +i /etc/resolv.conf

方法二:使用NetworkManager根据dhcp获取的DNS信息(vpc子网中配置的DNS信息)维护/etc/resolv.conf文件。

  1. 关闭并禁用systemd-resolved服务。
  2. systemctl stop systemd-resolved
  3. systemctl disable systemd-resolved
  4. 编辑NetworkManager配置文件,增加dns=default配置。
  5. vim /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
dns=default

[ifupdown]
managed=true

[device]
wifi.scan-rand-mac-address=no

默认的/etc/resolv.conf是软链接,删除重建为普通文件。

rm -rf /etc/resolv.conf

重启NetworkManager,刷新/etc/resolv.conf文件。

systemctl restart NetworkManager

检查/etc/resolv.conf中的dns相关配置。

  • 如果与云服务器所属子网下的DNS配置一致,代表修改成功。您可以登录控制台,在弹性云服务器详情页,单击网卡区域的主网卡名称,即可跳转至子网控制台,切换至“基本信息”页签,即可查看到“DNS服务器地址”信息。
  • 如果不一致,请提交工单联系技术支持处理。
点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注