Открыть сервис

HOSTS-файл

HOSTS-файл — это текстовый файл, используемый операционными системами для сопоставления IP-адресов с доменными именами. Он является частью системы разрешения имён (DNS) и позволяет вручную задавать соответствия между сетевыми адресами и именами узлов, минуя запросы к удалённым DNS-серверам. Файл хранится локально на компьютере и имеет приоритет над данными, полученными от DNS-серверов, если не настроено иное.

История

Идея использования локального файла для сопоставления имён и адресов возникла задолго до появления современного интернета. В 1970-х годах, в эпоху ARPANET, для разрешения имён узлов использовался единый централизованный файл HOSTS.TXT, который поддерживался Стэнфордским исследовательским институтом (SRI). Администраторы сети вручную загружали обновлённую версию этого файла на свои компьютеры. С ростом сети такой подход стал неэффективным, и в 1983 году была внедрена распределённая система доменных имён (DNS). Однако файл HOSTS остался в операционных системах как средство локального управления разрешением имён.

В современных операционных системах (Windows, Linux, macOS, Android) файл HOSTS по умолчанию пуст или содержит только комментарии и зарезервированные записи (например, 127.0.0.1 localhost). Он используется для различных целей, от блокировки рекламы до обхода DNS-блокировок.

Расположение и формат

Файл HOSTS находится в определённом месте в зависимости от операционной системы:

  • Windows: C:\Windows\System32\drivers\etc\hosts
  • Linux, macOS, Android: /etc/hosts

Файл не имеет расширения. Он представляет собой обычный текстовый файл, который можно редактировать в любом текстовом редакторе (например, «Блокнот» в Windows или nano в Linux). Для редактирования в Windows требуются права администратора.

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

`` IP-адрес доменное_имя [псевдоним] [# комментарий] ``

  • IP-адрес — числовой адрес узла (например, 127.0.0.1).
  • доменное_имя — полное доменное имя (FQDN) (например, example.com).
  • псевдоним (необязательно) — альтернативное имя узла (например, www).
  • # комментарий — строка, начинающаяся с символа #, игнорируется системой.

Пример записи:

``` 127.0.0.1 localhost ::1 localhost

Блокировка сайта

0.0.0.0 example.com ```

Принцип работы

Когда пользователь вводит доменное имя в браузере или другом приложении, операционная система сначала проверяет локальный кеш DNS. Если запись не найдена, она обращается к файлу HOSTS. Если в файле найдено соответствие, система использует указанный IP-адрес, не отправляя запросы внешним DNS-серверам. Если записи нет, система переходит к стандартному разрешению через DNS.

Таким образом, файл HOSTS имеет приоритет над удалёнными DNS-серверами. Это позволяет:

  • Ускорить доступ к часто посещаемым сайтам, если их IP-адреса известны.
  • Блокировать доступ к нежелательным сайтам, перенаправляя их доменные имена на локальный адрес (127.0.0.1 или 0.0.0.0).
  • Обходить блокировки DNS-серверов, если IP-адрес сайта известен и не заблокирован на уровне сети.

Применение

Блокировка рекламы и вредоносных сайтов

Одно из самых распространённых применений файла HOSTSблокировка рекламных и трекерных доменов. Пользователи и разработчики создают списки доменов, которые перенаправляются на 127.0.0.1 или 0.0.0.0, что делает их недоступными. Такие списки, например, MVPS HOSTS, StevenBlack/hosts, содержат тысячи записей. Это позволяет снизить количество рекламы на веб-страницах и защитить компьютер от вредоносных сайтов.

Обход DNS-блокировок

В некоторых странах, в том числе в России, провайдеры могут блокировать доступ к определённым сайтам на уровне DNS. Если IP-адрес сайта не заблокирован, пользователь может вручную добавить запись в файл HOSTS, указав рабочий IP-адрес. Это позволяет обойти блокировку, не используя VPN или прокси. Однако такой метод может быть неэффективен, если блокировка осуществляется на уровне IP-адресов или протоколов.

Разработка и тестирование

Веб-разработчики и системные администраторы используют файл HOSTS для тестирования локальных версий сайтов. Например, можно перенаправить домен example.com на локальный IP-адрес 127.0.0.1, чтобы протестировать сайт перед публикацией. Это позволяет имитировать работу реального домена без необходимости настройки DNS.

Ускорение работы сети

В некоторых случаях, если IP-адрес часто посещаемого ресурса известен и стабилен, его можно добавить в файл HOSTS, чтобы избежать задержек на DNS-запросы. Однако этот метод имеет ограничения: если IP-адрес изменится, доступ к сайту будет невозможен до обновления записи.

Ограничения и риски

  • Необходимость ручного обновления. Если IP-адрес сайта изменится, запись в файле HOSTS устареет, и доступ к сайту будет невозможен.
  • Отсутствие поддержки DNSSEC. Файл HOSTS не поддерживает проверку подлинности DNS-записей, что делает его уязвимым для подмены, если злоумышленник получит доступ к файлу.
  • Риск заражения. Вредоносное ПО может изменять файл HOSTS, перенаправляя домены легитимных сайтов на фишинговые или вредоносные серверы. Поэтому защита файла от несанкционированного доступа важна.
  • Ограниченная масштабируемость. Для больших списков доменов (например, для блокировки тысяч рекламных сетей) файл HOSTS может стать громоздким и замедлить работу системы.
  • Неэффективность против современных блокировок. В России и других странах блокировка сайтов часто осуществляется на уровне IP-адресов или с использованием DPI (глубокого анализа пакетов), что делает обход через файл HOSTS невозможным.

Интересные факты

  • В операционных системах семейства Windows файл HOSTS по умолчанию не имеет расширения, но его можно открыть в «Блокноте» или другом текстовом редакторе.
  • В некоторых версиях Android (до 9.0) файл HOSTS находился в /system/etc/hosts, но с версии 9.0 доступ к нему ограничен, и для редактирования требуются root-права.
  • Существуют программы и утилиты, автоматизирующие управление файлом HOSTS, например, HostsMan для Windows или AdAway для Android (последняя требует root-доступа).
  • В 2015 году компания Microsoft в Windows 10 изменила приоритет обработки файла HOSTS, сделав его менее приоритетным по сравнению с кешем DNS, что вызвало критику со стороны пользователей, использовавших файл для блокировки рекламы.

Источники

  • RFC 952 — «DoD Internet Host Table Specification»
  • RFC 1034 — «Domain Names — Concepts and Facilities»
  • Документация Microsoft Windows: «Файл HOSTS»
  • Документация Linux: man hosts
  • Статья «Hosts (file)» в английской Википедии
Загружаем BFOmetr…