我已经为 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 应该可以修复您的错误。