修改完dns总是被重置?

linux admin 1年前 (2021-08-16) 1084次浏览 1个评论

介绍

出于不同的需要,我们有的时候需要对Linux的dns进行修改,那一般情况下我们都会对/etc/resolv.conf这个文件进行修改,可是过一段时间,或者机器重启后,机器还会恢复原来的dns,这个问题以前也是一直困扰了小白好久。

原因

fRqT6e.png

这个地方其实已经写的很清楚了,因为我们机器的dns设置已经由resolvconf接管了,我们对/etc/resolv.conf所做的任何修改都会被resolvconf重写。

解决方法

我们由如下三思路可以解决这个问题。

温和派

修改resolvconf配置文件,仍然让resolvconf接管dns

nano /etc/resolvconf/resolv.conf.d/base
resolvconf -u

猥琐派

/etc/resolv.conf加锁,禁止任何进程修改它。

chattr +i /etc/resolv.conf

想要恢复原状的话,上述命令改成-i就好了。

釜底抽薪派

直接卸载resolvconf

apt remove resolvconf    

可能会遇到的问题

chattr +i /etc/resolv.conf时可能会提示

Operation not supported while reading flags on /etc/resolv.conf

出现这种情况主要是由于 resolvconf 包阻止resolv.conf的属性被chattr命令修改,于是我们卸载resolvconf,但是对resolv.conf文件的chattr操作依然无法执行。

其实这主要由系统管理resolv.conf文件的方式所导致的,我们通过

ls -l /etc/resolv.conf

查看文件属性会发现如下显示

lrwxrwxrwx 1 root root 29 Apr 11  2020 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

resolv.conf是指向另一个文件的软链接。只有当/etc/resolv.conf是个真实的文件时,系统才会采用该文件里配置的DNS服务器地址,所以我们只需要让resolv.conf是一个真实的文件即可,之久删了或者稳妥一点备份下,然后重建一个真实的resolv.conf文件即可。

mv /etc/resolv.conf /etc/resolv.conf.bak
nano /etc/resolv.conf  

 


VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽