hosts – это текстовый файл, содержащий базу данных доменных имен и используемый при их трансляции в сетевые адреса узлов, т.е. перевод DNS имени в ip-адрес.

Как правило при выполнении DNS запрос первоначальное обращение идет к файлу hosts, т.е. он имеет более высокий приоритет по отношению к DNS-серверам, указанных в сетевых настройках.

В отличие от полноценного сервера DNS, содержимое файла hosts контролируется администратором компьютера, т.е. корректировка файла выполняется вручную.

Файл hosts размещен:

1
/etc/hosts

Файл имеет следующий формат:

{IP} {Название хоста}.{Домен} {Алиас}

где

  • {IP} — IP адрес узла,
  • {Название хоста} — имя узла (в домене),
  • {Домен} — собственно домен,
  • {Алиас} определяет дополнительное имя узла.

Для того, чтобы избежать путаницы, лучше оставлять алиас таким же, как и название хоста с доменом, однако, с ним можно делать забавные вещи, например, строка:

1
216.239.37.99 www.google.com g

создаст алиас для google.com , теперь, открыв браузер, например Firefow можно нажать F6, g, Enter и попасть на сайт google.com. Конечно же, для этого есть более простые инструменты (например, тот же firefox), но и эта функция тоже может быть полезна, например разработчикам и/или тестировщикам веб-сервисов.

Для редактирования файл hosts, необходимо выполнить команду:

1
sudo nano /etc/hosts

Содержимое файла будет выглядеть следующим образом:

1
2
127.0.0.1       localhost
127.0.1.1       vm-test

Ниже добавляем нужную запись:

1
172.16.0.93    vm-mail-01

Проверяем командой пинг (ping):

1
ping vm-mail-01

Ну и собственно ответ на вопрос: Почему Ubuntu игнорирует /etc/hosts?

Посмотрите, что у вас в /etc/nsswitch.conf — именно он задаёт порядок опроса сервисов имён (не только доменных имён — так же порядок опроса сервисов по разрешению имён пользователей, сервисов и т. д. — всего, что имеет имя).

Если в настройка nsswitch.conf указано:

1
hosts: files dns

то сперва будет анализироваться hosts, а потом выполнятся dns-запрос. Если там другой порядок или есть какие-то ещё параметры, то и обработка запроса будет по-другому. И тут man nsswitch.conf никто не отменял.

P.S.

А программа host (как и nslookup) никогда не смотрит в hosts. Она делает именно запрос к dns-серверу, т. к. предназначена именно для отладки dns-сервера, а не тестирования разрешения имён в системе.


17th Май 2016
Теги:
Загрузка Все права защищены © 2016 ИТ-Инженер (Краснодар)
 
把手拿回