从 DHCP 服务器获取 IP,但在 Debian 上静态设置 DNS 服务器

从 DHCP 服务器获取 IP,但在 Debian 上静态设置 DNS 服务器

我有一个 Debian 系统,它从 DHCP 服务器获取 IP,我自己的 bind9 服务器在 上运行localhost。每次启动时,我都必须写入nameserver 127.0.0.1/etc/resolv.conf因为系统会更新文件以匹配 DHCP 分配的 DNS 服务器。为了尝试防止resolv.conf从我的网络的 DHCP 服务器获取更新的 DNS 服务器信息,我尝试将以下内容写入/etc/network/interfaces

iface eth0 inet dhcp
    dns-nameservers 127.0.0.1

但这仅在系统具有静态 IP 时才有效。

如何/etc/resolv.conf在不为我的系统提供静态 IP 的情况下防止被 DHCP 服务器分配的 DNS 服务器覆盖?

我用dhclient。

答案1

如果您确定您正在使用dhclient.你可以:

1. 更改dhclient设置(推荐)

编辑该文件,从以下行中/etc/dhcp/dhclient.conf搜索并删除它:domain-name-servers,

request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, 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;

2.防止/etc/resolv.conf被覆盖

运行以下命令 asroot或 usingsudo以便文件不会再次被覆盖:

chattr +i /etc/resolv.conf

这或多或少是一个重复的问题无法在 debian 上设置静态 DNS。但我无法发表评论,所以我添加了这个答案。

答案2

你可以加:

supersede domain-name-servers 127.0.0.1;

到 /etc/dhcp/dhclient.conf

答案3

删除该resolvconf软件包,您自己的软件包/etc/resolv.conf将不会被覆盖。

答案4

编辑网络文件 /etc/network/interfaces.conf并添加 PEERDNS="no" 。这在 Fedora 中有效。希望这能在 Debian 中发挥作用。您还可以使用 chattr。以便任何人都无法修改该文件。

相关内容