Dans ma machine Linux, quand je cours hostname
, ça montre mongodb
, mais quand je cours host mongodb
, ça montre:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
Mon /etc/hosts
dossier:
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
Ma première question est: étant donné que le
/etc/hosts
mappage de l'IP au nom d'hôte, pourquoi cette machine ne peut pas résoudre le nommongodb
d' hôte en IP 192.168.10.10? Au lieu de cela, lorsque je courshost localhost
, il peut être résolu et affiche:localhost has address 127.0.0.1
Ma autre question: selon le
/etc/hosts
fichier, le nom d'hôtelocalhost
aurait dû être résolu en 192.168.10.10 au lieu de l'adresse IP de bouclage 127.0.0.1. Quelqu'un peut-il m'expliquer cela?
/etc/hosts
n'a aucun effet sur la résolution DNS lors de l'interrogation directe des serveurs DNS, ce qui est lehost
cas. Cependant, de nombreux outils et utilitaires système utilisent lalocalhost
définition, s'attendant à ce qu'il s'agisse d'une adresse de bouclage, et utilisent la résolution de noms de système (qui examine/etc/hosts
avant d'interroger DNS) pour résoudre les noms plutôt que d'aller strictement à DNS, qui peut ne pas toujours être présent.