У моїй машині Linux, коли я запускаю hostname
, вона показує mongodb
, але коли я запускаю host mongodb
, вона показує:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
Мій /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
Перше моє запитання: так як
/etc/hosts
це відображення від IP до імені хоста, чому ця машина не може вирішити ім'я хостаmongodb
до IP 192.168.10.10? Натомість, коли я запускаюhost localhost
, це можна вирішити і показує:localhost has address 127.0.0.1
Моє ще одне питання: Відповідно до
/etc/hosts
файлу, ім'я хостаlocalhost
повинно було бути вирішено на 192.168.10.10 замість IP-адреси 127.0.0.1 з циклічним зворотом. Хтось може мені це пояснити?
/etc/hosts
не має ніякого впливу на дозвіл DNS при запиті DNS - серверів безпосередньо, що це те , щоhost
робить. Тим НЕ менше, багато інструментів і утиліти системи використовують вlocalhost
визначення, чекаючи , що вона буде петлевий адреса, і дозвіл імен використання системи (яка виглядає на/etc/hosts
перш , ніж запит DNS) до імен рішучістю , а не строго буде DNS, який не завжди може бути присутнім.