Mapeamento de nome de host e endereço IP em / etc / hosts

11

Na minha máquina Linux, quando executo hostname , ele mostra mongodb , mas quando executo host mongodb , ele mostra:

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

Meu arquivo /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
  • Minha primeira pergunta é: Como /etc/hosts está mapeando de IP para hostname, por que esta máquina não pode resolver o hostname mongodb para IP 192.168.10.10? Em vez disso, quando executo host localhost , ele pode ser resolvido e mostra:

    localhost has address 127.0.0.1
    
  • Minha outra pergunta: De acordo com o arquivo /etc/hosts , o nome do host localhost deveria ter sido resolvido para 192.168.10.10 em vez do endereço IP de loopback 127.0.0.1. Alguém pode me explicar isso?

por wuchang 14.01.2014 / 03:47

3 respostas

25

Os utilitários host (e nslookup ) consultam explicitamente os servidores DNS e não consultam o arquivo /etc/hosts em uma configuração de sistema padrão. Se você fosse para traceroute ou ping desse endereço, você o veria resolver corretamente.

Você não quer alterar localhost para mapear para algo diferente de 127.0.0.1, isso pode ter efeitos estranhos e sutis em muitas coisas. Eu acho que /etc/hosts é analisado na ordem em que está escrito e como você tem:

192.168.10.10   localhost
127.0.0.1       localhost

.. a segunda entrada pode estar substituindo a primeira.

    
por 14.01.2014 / 03:56
8

Além da resposta do DopeGhoti, para testar sua resolução, incluindo a /etc/hosts precedence, você pode usar o comando getent hosts <some_hostname> .

    
por 14.01.2014 / 08:29
-3

Eu tenho problemas semelhantes com um / etc / hosts contendo vários espaços entre IP e hostname, em vez disso, usando um TAB. Depois de mudar para o TAB, o nome do host pode ser resolvido por ping.

127.0.0.1        test.local
         ^^^^^^^^ → Should be a TAB not multiple spaces.

veja também no link

    
por 09.07.2015 / 14:40

Tags