为什么 nslookup 返回错误“找不到主机”?

spu*_*der 1 networking nslookup

在测试虚拟机上,我设置了 /etc/hosts 来解析计算机名称。

为什么nslookup找不到服务器?

$hostname  
foo

$hostname -f  
foo

$cat /etc/hosts  
10.2.192.62   foo   foo.openstacklocal sdb nid01 nid02 nid03 nid04  
127.0.0.1     localhost localhost.localdomain localhost4 localhost4.localdomain4  
::1   localhost localhost.localdomain localhost6 localhost6.localdomain6

$uname -n  
foo

$ping foo  
PING foo (10.2.192.62) 56(84) bytes of data.  
64 bytes from foo (10.2.192.62): icmp_seq=1 ttl=64 time=0.028 ms  

$nslookup foo  
Server:     10.0.0.2  
Address:    10.0.0.2#53  
** server can't find foo: NXDOMAIN 
Run Code Online (Sandbox Code Playgroud)

我对 nslookup 的理解是应该查询 dns 服务器(或 /etc/hosts)来查找机器名称。

为什么在这种情况下我无法解析 foo ?

Edit1
所有这些命令都是从虚拟机内部运行的(foo)

小智 5

非常简单,DNS 解析器 (10.0.0.2) 没有foo.

nslookup不考虑/etc/hosts,它专门针对名称服务器检查 DNS 条目(即nsnslookup 中的)。

由于您的 DNS 服务器没有 的条目foo,因此名称解析失败。