web-dev-qa-db-fra.com

Mappage du nom d'hôte et de l'adresse IP dans / etc / hosts

Sur ma machine Linux, lorsque j'exécute hostname, il affiche mongodb, mais lorsque j'exécute Host mongodb, ça montre:

mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ Host mongodb
Host mongodb not found: 2(SERVFAIL)

Ma /etc/hosts fichier:

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: depuis /etc/hosts est en train de mapper d'IP en nom d'hôte, pourquoi cette machine ne peut pas résoudre le nom d'hôte mongodb en IP 192.168.10.10? Au lieu de cela, lorsque j'exécute Host 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ôte localhost 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?

14
wuchang

Les utilitaires Host (et nslookup) interrogent explicitement les serveurs DNS et ne consultent pas les /etc/hosts fichier dans une configuration système par défaut. Si vous deviez traceroute ou ping cette adresse, vous la verriez correctement se résoudre.

Vous pas voulez changer localhost pour mapper sur autre chose que 127.0.0.1, cela peut avoir des effets étranges et subtils sur beaucoup de choses. Je pense que /etc/hosts est analysé dans l'ordre dans lequel il est écrit, et puisque vous avez:

192.168.10.10   localhost
127.0.0.1       localhost

..la deuxième entrée peut remplacer la première.

30
DopeGhoti

En plus de la réponse de DopeGhoti, pour tester votre résolution, y compris le /etc/hosts priorité, vous pouvez utiliser le getent hosts <some_hostname> commande.

9
HBruijn