解决 AWS 、GCP 等大厂 DNS 自动还原问题

我们一般通过修改 \etc\resolv.conf 来修改Linux系统的DNS。但是在大厂的服务器上,重启服务器,查看DNS服务器配置文件 \etc\resolv.conf ,里面的内容会变回原来的样子。出现这种情况的原因是 resolv.conf 文件被系统程序自动维护。

为了防止该文件被更改,可以为其添加独占权限,即执行

sudo chattr +i /etc/resolv.conf

但是一般情况下会出现提示:Operation not supported while reading flags on /etc/resolv.conf , 从而无法执行。由于 resolvconf 包阻止 resolv.conf 的属性被 chattr 命令修改,因而可执行

sudo chattr +i /etc/resolv.conf

以删除该软件包。

但是对 resolv.conf 文件的 chattr 操作依然无法执行。这其实是由系统管理 resolv.conf 文件的方式所导致的。用 ls -l /etc/resolv.conf 查看文件属性,会发现 resolv.conf 是指向另一个文件的软链接。只有当 /etc/resolv.conf 是个真实的文件时,系统才会采用该文件里配置的DNS服务器地址。因此解决问题的办法就是将软链接型的 resolv.conf 删除或重命名,然后创建新的 resolv.conf 文件并将DNS服务器的地址写进去, 即执行以下操作:

sudo mv /etc/resolv.conf /etc/resolv.conf.link
sudo vim /etc/resolv.conf

mv 用来重命名, vim 用来创建和写入内容。

上一篇
下一篇