我在 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
以下是我找到的解决方案:
- 安装并启用 resolvconf
- 编辑 /etc/resolvconf/interface-order 并赋予 NetworkManager 高优先级
我仍然不知道是什么弄乱了我的 resolv.conf 文件,但至少现在使用了网络管理器生成的文件。