在我的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(可能并不总是存在)。