Na moim komputerze z systemem Linux, gdy uruchamiam hostname
, pokazuje mongodb
, ale kiedy uruchamiam host mongodb
, pokazuje:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
Mój /etc/hosts
plik:
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
Moje pierwsze pytanie brzmi: skoro
/etc/hosts
mapowanie z adresu IP na nazwę hosta, dlaczego to urządzenie nie może rozpoznać nazwy hostamongodb
na IP 192.168.10.10? Zamiast tego po uruchomieniuhost localhost
można go rozwiązać i wyświetla:localhost has address 127.0.0.1
Moje kolejne pytanie: zgodnie z
/etc/hosts
plikiem nazwa hostalocalhost
powinna zostać rozstrzygnięta na 192.168.10.10 zamiast adresu IP sprzężenia zwrotnego 127.0.0.1. Czy ktoś może mi to wyjaśnić?
/etc/hosts
nie ma żadnego wpływu na rozpoznawanie DNS podczas bezpośredniego wysyłania zapytań do serwerów DNS, co właśniehost
robi. Jednak wiele narzędzi i narzędzi systemowych korzysta zlocalhost
definicji, oczekując, że będzie to adres zwrotny, i używa rozpoznawania nazw systemu (które sprawdzane są/etc/hosts
przed zapytaniem o DNS) do rozpoznawania nazw, a nie tylko do DNS, które nie zawsze mogą być obecne.