dhclient 使用无效条目配置 /etc/resolv.conf

dhclient 使用无效条目配置 /etc/resolv.conf

我试图弄清楚为什么在我的接口上运行 dhclient 会将 /etc/resolv conf 设置为我的网关(路由器)的 ip 号码。

此条目无效并且每次都导致无法解析任何地址。

我想:

  • 阻止 dhclient 覆盖 /etc/resolv.conf 或
  • 让 dhclient 写入我路由器的有效 dns ip

有关环境的更多信息:我在 Windows Seven x64 上使用虚拟 Debian Wheezy 作为客户端系统。它由 Virtualbox 运行,网络模式设置为桥接(来自 debian 的所有数据包都注入到我在 Windows 上的网络接口)。

如果我手动配置 /etc/resolv.conf,那么一切都会正常。每次启动时都这样做很烦人。

PS> 我知道我可以编写一个脚本来帮我做这件事,但这不是我想要的解决方案。//编辑

  • 路由器IP:192.168.1.100
  • 运行 dhclient eth0 之后的 /etc/resolv.conf:“ nameserver 192.168.1.100
  • 我希望 /etc/resolv.conf 看起来像:“ nameserver 89.202.xxxx”(我不必提供真实的 IP,对吗?)

所有其他设备 - 装有 Ubuntu 的笔记本电脑、两部装有 Android 的手机、装有 Windows 7 的笔记本电脑都能够从路由中获取正确的 DNS 条目

答案1

嗯,最好的方法是修复路由器上的 dhcp 服务器,这样它就会为您提供正确的设置......

如果您不能或不想这样做,您可以调整 dhclient 配置,使其不通过 DHCP 请求 dns 服务器。

大多数发行版的配置文件可能是/etc/dhcp/dhclient.conf。在此文件中,您将找到类似以下的一行:

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

从此列表中删除域名服务器(可能还有域名搜索)并重新启动 dhclient 进程....

答案2

用户“rbtux”是对的。但是在建议之前有一行特殊的(注释)/etc/dhcp/dhclient.conf

#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers,
        dhcp6.domain-search, dhcp6.fqdn,
        dhcp6.name-servers, dhcp6.sntp-servers;

我已取消注释它并且它对我有用。

抱歉我的英语不好。

相关内容