如何阻止 dhclient 更新 Debian 上的 resolvconf?

如何阻止 dhclient 更新 Debian 上的 resolvconf?

我想在我的 Debian 上使用某些 DNS 服务器,无论我通过 DHCP 获得什么。我正在尝试配置 dhclient 以忽略这些,但我似乎无法让它工作。

根据建议本文我将supersede domain-name-servers 8.8.8.8, 8.8.4.4;节添加到我的/etc/dhcp/dhclient.conf文件中。我也尝试过这些答案来自 superuser.com并从指令中删除了domain-name-serversdomain-search值。request这两种方法,无论单独使用还是一起使用,似乎都没有效果。运行后sudo dhclient -rsudo dhclient我仍然在中找到以下条目/etc/resolvconf/run/interfaces/enp2s0.dhclient

domain lan
nameserver 192.168.1.1

提示将其resolvconf放入nameserver 192.168.1.1我的/etc/resolv.conf文件中。

我仔细检查了是否没有遗漏任何分号或类似的语法元素。我怎样才能让我的配置工作?我不想删除 resolvconf,因为当我使用企业 VPN 时,它可以管理我的名称服务器中的更改,而且效果很好。看来 dhclient 是这里的违规方。

这是我当前的内容,/etc/dhcp/dhclient.conf为了清楚起见,删除了默认注释:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

send host-name = gethostname();
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, host-name,
        dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

#supersede domain-name-servers 8.8.8.8, 8.8.4.4;

更新:根据评论中的请求,以下是输出ps ax | grep dhcp

23528 pts/2    S+     0:00 grep dhcp

答案1

如果您不需要resolvconf管理/etc/resolv.conf文件,最简单的解决方案是完全卸载resolvconf

答案2

如何阻止 dhclient 更新 Debian 上的 resolvconf?

我不想删除 resolvconf

您需要添加domain-name-servers 8.8.8.8, 8.8.4.4

/etc/resolvconf/resolv.conf.d/base

/etc/network/interfaces

重新生成resolv.conf然后重新启动网络:

resolvconf -u
/etc/init.d/networking restart

答案3

正如您所发现的,resolvconf 不是问题。我的解决方案是创建一个文件/etc/dhcp/dhclient-enter-hooks.d/ignore_resolv_conf并将其放入其中:

# prevent dhclient from touching /etc/resolv.conf
make_resolv_conf() { : ; }

确保该文件是可执行的。

在 DHCP 客户端中设置忽略解析器的选项不会使其忽略解析器。

这对我在 Ubuntu 20.04 上有效,YMMV。

答案4

在 Linux 系统上使用命令写保护您的/etc/resolv.conf文件。chattr

语法是:

# chattr +i /etc/resolv.conf

Linux 上的选项+i(属性)写保护/etc/resolv.conf文件,以便任何人都无法修改它,包括用户。

相关内容