Nella mia macchina linux, quando corro hostname
, mostra mongodb
, ma quando corro host mongodb
, mostra:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
Il mio /etc/hosts
file:
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
La mia prima domanda è: dato che si
/etc/hosts
sta mappando da IP a nome host, perché questa macchina non è in grado di risolvere il nome hostmongodb
a IP 192.168.10.10? Invece, quando corrohost localhost
, può essere risolto e mostra:localhost has address 127.0.0.1
Un'altra mia domanda: secondo il
/etc/hosts
file, il nome hostlocalhost
avrebbe dovuto essere risolto in 192.168.10.10 invece dell'indirizzo IP di loopback 127.0.0.1. Qualcuno può spiegarmelo?
/etc/hosts
non ha alcun effetto sulla risoluzione DNS durante l'interrogazione diretta dei server DNS, che è ciò chehost
fa. Tuttavia, molti strumenti e utilità di sistema usano lalocalhost
definizione, aspettandosi che sia un indirizzo di loopback e usano la risoluzione dei nomi di sistema (che esamina/etc/hosts
prima di interrogare il DNS) per risolvere i nomi piuttosto che andare strettamente al DNS, che potrebbe non essere sempre presente.