在我的linux机器上,当我运行时hostname
,它显示mongodb
,但是当我运行时host mongodb
,它显示:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
我的/etc/hosts
档案:
192.168.10.10 mongodb
192.168.10.10 localhost
127.0.0.1 localhost
#127.0.0.1 localhost
# 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
我的第一个问题是:既然
/etc/hosts
是从IP映射到主机名,为什么这台机器不能将主机名解析mongodb
为IP 192.168.10.10?相反,当我运行时host localhost
,它可以解决并显示:localhost has address 127.0.0.1
我的另一个问题:根据
/etc/hosts
文件,主机名localhost
应该已经解析为192.168.10.10而不是回送IP地址127.0.0.1。有人可以向我解释吗?
/etc/hosts
直接查询DNS服务器时,不会对DNS解析产生任何影响host
。但是,许多系统工具和实用程序都使用该localhost
定义,期望它是一个环回地址,并使用系统名称解析(/etc/hosts
在查询DNS之前进行查看)来解析名称,而不是严格使用DNS(可能并不总是存在)。