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/hostsdossier:
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/hostsmappage de l'IP au nom d'hôte, pourquoi cette machine ne peut pas résoudre le nommongodbd' 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.1Ma autre question: selon le
/etc/hostsfichier, le nom d'hôtelocalhostaurait 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/hostsn'a aucun effet sur la résolution DNS lors de l'interrogation directe des serveurs DNS, ce qui est lehostcas. Cependant, de nombreux outils et utilitaires système utilisent lalocalhostdé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/hostsavant d'interroger DNS) pour résoudre les noms plutôt que d'aller strictement à DNS, qui peut ne pas toujours être présent.