DNS 查找失败

DNS 查找失败

网关192.168.122.1运行 dns,并且命令dig @192.168.122.1 www.google.com返回有效的 ip 地址,因此 dns 正在工作并且可以访问。

命令tracepath www.google.com返回gethostbyname2: Host name lookup failure

命令tracepath 74.125.129.103(www.google.com)产生有效结果,因此默认路由设置正确。

该命令route -n输出:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.122.1   0.0.0.0         UG    100    0        0 eth0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

适用部分/etc/network/interfaces如下:

auto eth0
iface eth0 inet static
    address 192.168.122.5
    netmask 255.255.255.0
    broadcast 192.168.122.255
    gateway 192.168.122.1
    dns-servers 192.168.122.1

当前没有运行防火墙。

我认为,鉴于这些设置,tracepath www.google.com将联系192.168.122.1DNS 信息,该信息已被验证可以正常工作且可访问。

我下一步该做什么才能找出 tracepath 命令返回的原因gethostbyname2: Host name lookup failure


编辑(更多信息)

/etc/resolv.conf为空。Ubuntu 12.04 使用新的子系统,resolvconf可在中自动生成 resolv.conf 数据/etc/resolvconf/resolv.conf.d/*

/etc/resolvconf/resolv.conf.d/original包含:

nameserver 192.168.122.1

所有其他resolv.conf.d文件(headbase)都是空的。

/etc/nsswitch.conf包含:

    passwd:         compat
    group:          compat
    shadow:         compat

    hosts:          files dns
    networks:       files

    protocols:      db files
    services:       db files
    ethers:         db files
    rpc:            db files

    netgroup:       nis

/etc/hosts包含:

    127.0.0.1       localhost
    127.0.1.1       hostname

    # The following lines are desirable for IPv6 capable hosts
    ::1     ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters

答案1

我不太熟悉这个resolv.conf.d版本,但我相信你应该把查找设置/etc/resolv/resolv.conf.d/base放在/etc/resolv/resolv.conf.d/original

答案2

接受的答案是,文件nameserver中的指令/etc/resolv/resolv.conf.d/base在 ubuntu 的新子系统中管理名称服务器设置的方法resolvconf,但还有另一种方法,我一直在我的配置中尝试过。

/etc/network/interfaces还可以使用指令在文件中设置名称服务器dns-nameservers

我的问题是拼写错误!我写成了dns-nameservers“dns-servers”。

我已经验证了接受的答案和这个答案均有效。

相关内容