VPS修改完dns后resolv.conf总是被重置?

介绍

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

原因

VPS修改完dns后resolv.conf总是被重置?

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

解决方法

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

温和派

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

  1. nano /etc/resolvconf/resolv.conf.d/base
  2. resolvconf u

猥琐派

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

  1. chattr +i /etc/resolv.conf

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

釜底抽薪派

直接卸载resolvconf

  1. 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文件的方式所导致的,我们通过

  1. ls l /etc/resolv.conf

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

  1. 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文件即可。

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

 

原创文章,作者:mantou,如若转载,请注明出处:https://v2ez.com/1427.html

(0)
mantoumantou
上一篇 2025年4月25日
下一篇 2023年7月28日

相关推荐

发表回复

登录后才能评论