У нас есть запись хоста на нашем сервере в /etc/hosts
файле. Итак, есть запись следующего вида:
10.74.74.76 foo
Но на той же машине, через SSH я делаю следующее:
$ host -t a foo
foo.internal.domain.com has address 10.43.55.23
Почему здесь не указан IP-адрес /etc/hosts
?
решение1
host
это (простой)DNS-поискполезность.
Любые данные в вашем /etc/hosts
файле НЕ являются DNS.
Это означает, что host
команда всегда будет запрашивать настроенные вами DNS-серверы и не будет учитывать типичный приоритет, который использует ваш системный преобразователь при первом запросе локальной базы данных хостов перед попыткой разрешить хост/полное доменное имя.
решение2
Команда host
представляет собой утилиту поиска DNS, которая всегда использует DNS в качестве преобразователя; /etc/hosts
файл — никогда.
Из страницы руководства host(1):
host
простая утилита для выполнения DNS-поиска.
server
— необязательный аргумент, представляющий собой имя или IP-адрес сервера имен, который хост должен запросить вместо сервера или серверов, перечисленных в/etc/resolv.conf
.