我正在尝试将 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 地址分配的函数并告诉它只需返回即可。但上面的方法更简单,更正确。