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
¶Блокировка сайта
¶Принцип работы
Когда пользователь вводит доменное имя в браузере или другом приложении, операционная система сначала проверяет локальный кеш 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)» в английской Википедии