强制解析器到 OpenDNS 的服务器

强制解析器到 OpenDNS 的服务器

我正在尝试将 Debian 配置为我网络上的路由器/网关,其中 eth0 连接至我的 ISP 的调制解调器,eth1 连接至我的 LAN。

eth0 需要 DHCP,以便从我的 ISP 调制解调器获取正确的 IP 地址,但在使用 DHCP 时,我也会将 ISP 的 DNS 服务器放入 /etc/resolv.conf 文件中。我想用 OpenDNS 服务器覆盖 ISP 提供的 DHCP 服务器,但效果不佳。我找到的 Debian 网络文档建议设置 dns-nameservers 选项,如下所示:

/etc/网络/接口

iface eth0 inet dhcp
    dns-nameservers 208.67.222.222 208.67.220.220

但是 /etc/resolv.conf 继续填充 ISP 名称服务器。如果我编辑 /etc/resolv.conf 并在文件中设置 openDNS 服务器,它会定期被清除,大概是由于 DHCP 租约本身刷新所致。

如何让 OpenDNS 名称服务器保留下来?

答案1

执行您想要的操作的最正确方法可能是打开dhclient.conf并包含适当的supersede选项,这将告诉dhclient- 实际发出 DHCP 请求并执行请求的操作的程序,忽略它从服务器收到的内容并使用配置文件中的内容。类似:

interface "eth0" {
 supersede domain-name-servers 208.67.222.222, 208.67.220.220;
 }

然后我会在你的评论中说/etc/network/interfaces你这样做只是为了以防你将来改变它,并且正在寻找为什么它不会从 OpenDNS 改变。

我最终采用的方法是利用dhclient执行钩子脚本的事实,您实际上可以覆盖执行 IP 地址分配的函数并告诉它只需返回即可。但上面的方法更简单,更正确。

相关内容