我的虚拟机有 IP 192.168.1.3
,DNS 服务器有192.168.1.2
。DNS/etc/hosts
服务器上的文件中有以下条目
192.168.1.3 test.com
192.168.1.3 test.test.com
从命令nslookup test.com
/ nslookup test.test.com
(这里显然用Name: test.test.com
)我得到
Server: 192.168.1.2
Address: 192.168.1.2#53
Name: test.com
Address: 192.168.2.3
但是当我执行它时ping test.test.com
它说:ping: cannot resolve test.com: Unknown host
奇怪的是,ping test.test.com
在 VM ( 192.168.1.3
) 和 DNS 服务器 ( 192.168.1.2
) 上成功。Apache-Configtest 返回Syntax OK
,并且 VirtualHost-File 具有正确的条目和ServerName
(ServerAlias
命名域共有两个条目)我尝试向 添加子域test.com
,然后它成功了,但是为什么呢?
答案1
不要将其nslookup
用于 DNS 诊断,请使用dig
。(并且 test.com 返回的地址与nslookup
您之前所说的不匹配)
ping
使用 DNS,但您的 DNS 服务器不会使用其内容/etc/hosts
来回复查询,它只会作为普通的缓存递归服务器工作,因此找不到您的主机。如果您想解析本地名称,您要么需要将它们放在/etc/hosts
所有服务器的所有文件中(并确保/etc/nsswitch.conf
确实files
为该hosts
组列出),要么在您的区域中拥有本地权威名称服务器并确保您的客户端会使用它。