Debian Stretch 无法解析主机名,但 IP 可以工作

Debian Stretch 无法解析主机名,但 IP 可以工作

我已经为 eth0 配置了 Stretch 网络(它选择了 ens3),设置后:

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
grub-mkconfig -o /boot/grub/grub.cfg
reboot

所以现在我有:

>: cat /etc/network/interfaces
source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.10/24
    gateway 192.168.1.1
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 8.8.8.8

这是有效的,所以:

>: ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:0a:f7:bc brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe0a:f7bc/64 scope link
       valid_lft forever preferred_lft forever

我可以 ping 谷歌域名服务器,例如:

>: ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=10.9 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=55 time=10.9 ms

但不是 Google 本身,也不是任何其他域名。我的 hosts 文件如下所示:

>: cat /etc/hosts
127.0.0.1   localhost
192.168.1.10    someserver.name.com someserver

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

我的 resolv.conf 看起来像:

>: cat /etc/resolv.conf
nameserver 8.8.8.8

但我可以 ping 我的网关,因此默认路由似乎没问题:

>: ip r
default via 192.168.1.1 dev eth0 onlink
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10

我的 /etc/nsswitch.conf 说:

hosts:          files dns
networks:       files

缺什么?我应该在 Stretch 中做其他事情吗?

答案1

听起来您可能混淆了路由和 DNS 两个问题。如果您能够 ping 通数字地址,例如 <8.8.8.8> 或 <128.171.224.100> (www.hawaii.edu),那么问题是 DNS,而不是路由。

/etc/nsswitch.conf 文件指定在何处查找 DNS 信息以及按什么顺序进行查询。查找带有“hosts”的行。

答案2

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.10/24
    gateway 192.168.1.1
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 8.8.8.8

删除/24。原因:从语法角度来说,你是不正确的。

假设您的 192.168.1.10 地址包含 DNS 服务器,删除 /24 应该可以修复您的错误。

相关内容