resolv.conf 在新网络上仍然相同

resolv.conf 在新网络上仍然相同

当我在具有不同 dhcp 服务器的不同网络之间切换时,我的resolv.conf文件不会改变(其他设置如ipgw会改变)。

解决方法是手动删除resolv.conf并运行dhclient

我的接口文件如下所示:

猫/等/网络/接口

auto lo iface lo inet loopback

如何永久修复它?

答案1

我之前遇到过同样的问题,这是因为包resolvconf没有安装。尝试使用

sudo apt-get install resolvconf

然后编辑 resolvconf 文件并通过以下方式重新启动网络

sudo /etc/init.d/networking restart

您的 /etc/network/interfaces 文件是什么样的?

我也从之前与您的类似的帖子中的这个答案中获得了提示。https://askubuntu.com/a/58802/49237

DHCP 租约续订时,可能会触发 /etc/resolv.conf 看似自发的更新。检查您获得的 DHCP 租约期限(这应该出现在系统日志中,我认为在 /var/log/syslog 中)。

您可以使用 auditd 来找出修改了文件的内容。启动守护进程 (sudo service auditd start) 并告诉它监视该文件的修改:

sudo auditctl -w /etc/resolv.conf -p w

审计日志位于 /var/log/audit/audit.log。您将看到文件的修改时间和修改文件的程序名称。

如果您安装了 resolvconf 软件包,网络管理器可能会出现问题。请尝试关闭所有网络接口,然后停止网络管理器 (sudo service network-manager stop),然后重新启动它。

答案2

从 /etc/network/interfaces 中没有 iface 定义这一事实来看,我推断您正在使用 NetworkManager 来配置您的接口。

最初的问题可能是 NetworkManager 中的连接配置错误,例如,选择“仅自动(DHCP)地址”而不是“自动(DHCP)”作为“方法”。

还请考虑一下,由于某种原因,您的符号链接 /etc/resolv.conf -> ../run/resolvconf/resolv.conf 可能丢失了。请参阅错误 #1000244。修复该问题的方法是运行“dpkg-reconfigure resolvconf”。

删除 resolvconf 并不是最好的解决方案。这样做意味着您依赖 DHCP 客户端中的旧版支持来直接处理 /etc/resolv.conf。目前这样做可能有效,但引入 resolvconf 正是为了使这种干预变得有序。

答案3

我通过删除 resolvconf 来修复此问题。

相关内容