Hosts - немного информации о файле hosts

Версия для печатиОтправить другуPDF version

Устал отвечать на вопросы: "что такое файл hosts?", и "с чем его едят?"...

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

Как это было...

В далекие времена, когда Интырнеты были маленькие, а компутеры большие, аки шкафы, было создано несколько сетей. Среди них Arpa, Chaos ну и  другие. Естественно встал вопрос о нумерации компьютеров в сети, который был решен средствами сетевых протоколов. Изначально, когда сеть была малого размера, доступ к компьютерам сети мог осуществляться по сетевому адресу (например по ip). Далее, с ростом сети, это стало неудобно, и потребовалась замена стандартной схемы. Поэтому сетевыми администраторами была придумана система hosts. Был создан файл, в котором в явном виде указывалось соответствие сетевого адреса адресу мнемоническому. Это нововведение значительно упростило жизнь пользователей, ведь теперь не надо было запоминать эти многочисленные цифры, а достаточно иметь такой файлик у себя. Однако подобный файл с ростом сети стал просто огромным и и плохо оптимизированным, т.е. для того, чтобы все пользователи сети узнали о новом сервере с адресом, например, 193.232.159.144 под именем music.ru, необходимо было разослать всем участникам сети этот файл и вручную добавить описание нового хоста к файлу. С ростом сети сделать это было все сложнее и сложнее, а когда запросы на добавление стали приходить несколько раз в час, то и просто невозможно. От традиционной системы пришлось отказаться, и была разработана система доменных имен - DNS.

Однако, стоит отметить, что файл hosts никуда не пропал. Даже на сегодняшний день он присутствует в большинстве операционных систем. В Unіх-системах путь к нему /etc/hosts. В продуктах Microsoft он доступен по адресу: C:\WINDOWS\system32\drivers\etc\hosts.В данном файле в прямое соответствие выставляются ip-адрес и доменное имя.  Пример файла hosts:

Картинки

Итак, сначала идут комментарии (начинаются со знака "#"). Ну а дальше - уже идут записи, описывающие соответствия IP-адрес<-> имя. У меня только одна запись - 127.0.0.1 - localhost. Эта запись указывает на то, что адрес обратной петли отвечает имя localhost.

Однако, ничего не запрещает добавить в hosts, например, такую запись:

93.158.134.11		yandex.ru

В этом случае, все запросы на yandex.ru будут постоянно перенаправляться на IP-адрес 93.158.134.11. Записи в файле hosts имеют первоочередной приоритет при преобразовании имени в IP.

Попробуем разобраться, почему это происходит. Ни для кого не секрет, что при попытке расшифровки имени, DNS-client компьютера обращается изначально к кешу DNS, в котором информация о предыдущих преобразованиях хранится некоторое время. Это время задается либо в записи SOA для всего доменного имени, либо отдельно для каждой зоны (для MX-записи может быть одно, для А-записи -  другое...). Запись в файле hosts это время делает бесонечно большим, т.е. эта запись хранится постоянно и не изменяется.

Отображение и очистка кеша DNS

Попробуем более подробно разобраться, что такое кеш DNS. Это информация, о соответствии IP-адрес<-> имя, которая хранится в памяти устройства. Для чего это нужно? Рассмотрим на простом примере... Воспользуемся утилитой ping, которая посылает ICMP-пакеты "поверх" IP-протокола, и получает их обратно (при этом используются различные метки).

Однако, когда даем команду "ping yandex.ru", компьютер должен сначала выполнить преобразование DNS-имени yandex.ru в IP-адрес 93.158.134.11. Кеш DNS нужен для того, чтобы каждый раз не делать запросов на разрешение доменного имени в IP-адрес заново.

Картинки

Если выполнить команду ping, как в примере, то если бы не было кеша DNS, процедуру преобразование DNS-имени yandex.ru в IP-адрес необходимо было бы выполнить 10 раз. Также стоит иметь ввиду, что DNS-сервера провайдера тоже кешируют информацию на период времени, указанный в SOA-записи домена.

Для просмотра локального DNS-кеша на компьютере под управлением OS Windows воспользуемся командой ipconfig с ключем displaydns:

 Картинки

Этот список  и есть локальный DNS-кеш, где параметр "Срок жизни" - это время в секундах, которое запись еще будет храниться.

Чтобы сбросить кеш, необходимо использовать ключ flushdns. После выполнения "ipconfig -flushdns" будет сброшен весь кеш DNS, исключая записи, указанные в  файле hosts.

Картинки

Что это нам дает?

Озникомившись с информацией, необходимо взять ее "на вооружение". В основном возможность использования файла hosts пригодится веб-мастерам и системным администраторам. Довольно удобно использовать файл hosts при переносе хостинга или других операциях, где необходимо эмулировать запросы к DNS-имени.

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

 

Ваша оценка: Нет Средняя: 5 (1 голос)

 спасибо интересный

 спасибо интересный материал

 

Re: Hosts - немного информации о файле hosts

А что делать, если сперва была добавлена запись в файл hosts, а затем закомментирована, а далее удалена, и при обращении к сайту браузер по прежнему ломится по старому ip адресу, по тому, на котором раньше была сайта, а сейчас он на новом ip, а ломится на старый?! Пересоздавал, пересохранял... ничего не помогает. кэш Днс очищал, все то же ломится на старый ip... Тут в чем может быть проблема?! 

Re: Hosts - немного информации о файле hosts

Ping из коммандной строке идет на нужный IP?

Если на старый - очистите кеш ДНС в коммандной строке с помощью комманды ipconfig -flushdns. Если ping идет на нужный IP, а в браузере отображается старый ресурс - необходимо очистить кеш браузера.

Если проблема не решается - добро пожаловать на форум...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература