Você provavelmente tem registros DNS anteriores no servidor DNS que você está usando para esse nome de host. Você pode verificar isso com dig:
dig <your.host.name>
Se eu correr abaixo do comando, estou recebendo alguns endereços IP estranhos.
hostname -i
198.105.244.11 198.105.254.11
A entrada do meu arquivo host está na configuração padrão, abaixo estão os conteúdos da minha entrada do arquivo / etc / hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
O IP real desta máquina é 192.168.2.31
Espero que, depois que eu adicionei a entrada abaixo no arquivo /etc/hosts
,
192.168.2.31 myhost
Eu poderia obter a saída esperada,
hostname -i
192.168.2.31
Mas, por que está mostrando um intervalo diferente de IPs durante a execução de hostname -i
?
Atualização:
ip r
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.31
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.2.1 dev eth0
ifconfig eth0
eth0 Link encap:Ethernet HWaddr ##removed##
inet addr:192.168.2.31 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feca:24c2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2153703 errors:0 dropped:0 overruns:0 frame:0
TX packets:612859 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:189727756 (180.9 MiB) TX bytes:761146814 (725.8 MiB)
(usando o Cent 6.4)
Você provavelmente tem registros DNS anteriores no servidor DNS que você está usando para esse nome de host. Você pode verificar isso com dig:
dig <your.host.name>
Parece um truque do seu servidor DNS. Consultar qualquer hostname / fqdn desconhecido retornará precisamente os dois endereços IP que você obtém:
$ nslookup whatever-unknown-name 4.2.2.2 Server: 4.2.2.2 Address: 4.2.2.2#53 Non-authoritative answer: Name: whatever-unknown-name Address: 198.105.244.11 Name: whatever-unknown-name Address: 198.105.254.11
Seu servidor está configurado para consultar primeiro o DNS e, em seguida, verificar os arquivos / etc / hosts. Assim, o que você colocar no último será ignorado se o seu servidor DNS estiver resolvendo seu nome de host. A questão é que está enganando você "resolvendo" qualquer nome desconhecido para os endereços IP fixos que você conseguiu.
Para corrigir o problema, edite seu arquivo /etc/nsswitch.conf
e coloque files
antes de dns
na linha hosts
.