/etc/resolv.conf 中缺少名称服务器

/etc/resolv.conf 中缺少名称服务器

我有一个问题,那条线nameserver 8.8.8.8刚刚从我的 上消失了/etc/resolv.conf

这种情况可能每隔几天就会发生一次,但我没有注意到与此问题相关的任何事情。然后我手动将其添加回来并重新启动我永远循环的脚本。这样做很烦人,我想知道为什么会发生这种情况。

答案1

要添加永久线路,/etc/resolv.conf您可以安装resolvconf命令行:

sudo apt install resolvconf

然后你必须编辑/etc/resolvconf/resolv.conf.d/head并添加你需要的永久行。例如:

nameserver 8.8.8.8
nameserver 1.1.1.1

最后运行以下命令:

sudo resolvconf --enable-updates
sudo resolvconf -u

也许您需要在此之后重新启动网络接口,但我不确定。

答案2

重启时/etc/resolve.conf通常会重新生成,有时可能会被 DHCP 或其他服务重写/创建。dns-nameservers如果是这种情况,您可以尝试禁用从 DHCP 服务器获取。

dhclient通常可以解决大多数resolvconf文件的问题。因此更新您的/etc/dhcp/dhclient.conf/etc/network/interfaces文件即可。

类似问题的答案和意见可以在这里找到

答案3

包括 netplan、network-manager 和 dhcpd 在内的多个服务都需要对 resolv.conf 进行更改以反映当前网络配置。

通常在 ubuntu 系统中,systemd-resolve 和 resolvconf 服务会尝试解决这个问题,您会发现该文件/etc/resolv.conf实际上是 的符号链接/var/run/resolvconf/resolv.conf

如果您想对此文件进行永久性更改,则需要在其中一个控制子系统(例如 netplan 或 network-manager)中进行更改。

如果您不想自动管理该文件,可以删除符号链接并将其重新创建为常规文件。但是,这可能会破坏 VPN、DHCP 以及从一个物理网络移动到另一个物理网络时获得的动态网络更改等功能。

相关内容