我想在我的 Debian 上使用某些 DNS 服务器,无论我通过 DHCP 获得什么。我正在尝试配置 dhclient 以忽略这些,但我似乎无法让它工作。
根据建议本文我将supersede domain-name-servers 8.8.8.8, 8.8.4.4;
节添加到我的/etc/dhcp/dhclient.conf
文件中。我也尝试过这些答案来自 superuser.com并从指令中删除了domain-name-servers
和domain-search
值。request
这两种方法,无论单独使用还是一起使用,似乎都没有效果。运行后sudo dhclient -r
,sudo 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
文件,以便任何人都无法修改它,包括根用户。