查找哪个程序正在替换我的 resolv.conf 文件

查找哪个程序正在替换我的 resolv.conf 文件

我在 Debian 8 上使用网络管理器。我的配置包含一些自定义 DNS 服务器,因此网络管理器生成的 /etc/resolv.conf 文件如下所示:

# Generated by NetworkManager
search rudloff.pro
nameserver 89.234.141.66
nameserver 8.8.8.8
nameserver 2a00:5881:8100:1000::3

这完全没问题,但几分钟后,resolv.conf 文件被替换为以下内容:

nameserver 2a01:e00::1
nameserver 2a01:e00::2

(这些是我的 ISP DNS 服务器,由 DHCP 服务器发送。)

我不知道是什么替换了这个文件。你知道是什么可以做到这一点吗?有没有办法查看哪个进程编辑了该文件?

答案1

network(mis)manager 和 resolvconf(仅 dns)都可以更改网络设置和/或 dns 设置(例如,更改您注意到的 /etc/resolv.conf 文件)。

虽然在笔记本电脑上很方便,因为它可以看到许多不同的(无线)网络,但在服务器上实际用途有限,甚至可能造成麻烦,导致服务器无法连接(例如,如果有人意外或故意在网络上添加了 dhcp 服务器,网络(错误)管理员可能会突然决定从那里获取 IP 地址)。如果您运行服务器,则这些软件包用处不大,最好删除它们并手动配置网络。这样,您就可以确保配置保持一致且不变。

修理:

apt-get --purge remove resolvconf network-manager

这不会删除诸如 /etc/resolv.conf 和 /etc/network/interfaces 之类的文件,您可以手动编辑这些文件来创建您自己的稳定网络配置。

在设置新服务器时,或者当我接管服务器管理并且删除是适当的(99% 的情况下),我通常会这样做。

答案2

以下是我找到的解决方案:

  1. 安装并启用 resolvconf
  2. 编辑 /etc/resolvconf/interface-order 并赋予 NetworkManager 高优先级

我仍然不知道是什么弄乱了我的 resolv.conf 文件,但至少现在使用了网络管理器生成的文件。

相关内容