Файл hosts: назначение и расположение¶
Файл hosts — текстовый файл операционной системы, содержащий таблицу соответствия между доменными именами и IP-адресами. Он используется для локального разрешения имён доменов до того, как система обратится к внешним DNS-серверам, что позволяет переопределять адреса отдельных сайтов, блокировать доступ к ресурсам или ускорять обращение к часто посещаемым серверам.
¶Назначение
Файл hosts выполняет функцию локального DNS-резолвера. При обращении к доменному имени операционная система сначала проверяет кэш, затем файл hosts и только после этого отправляет запрос на DNS-сервер. Записи в файле имеют вид: IP-адрес, пробел, доменное имя. Строки, начинающиеся с символа #, считаются комментариями и игнорируются.
Основные сценарии использования:
- Разработка и тестирование. Привязка локального домена (например,
mysite.local) к адресу127.0.0.1для проверки сайта до публикации. - Блокировка сайтов. Перенаправление нежелательного домена на несуществующий адрес (
0.0.0.0) или на локальный сервер. - Обход DNS-блокировок. Указание альтернативного IP-адреса для домена, который не резолвится через обычный DNS.
- Ускорение доступа. Запоминание адресов часто посещаемых ресурсов без обращения к DNS.
¶Расположение файла в разных ОС
¶Windows
В Windows файл hosts расположен по пути:
`` C:\Windows\System32\drivers\etc\hosts ``
Расширение .hosts не используется — файл не имеет расширения. Для редактирования требуется учётная запись с правами администратора. Открыть файл можно через Блокнот, запущенный от имени администратора, или через любой текстовый редактор с соответствующими правами.
¶Linux и macOS
В Unix-подобных системах (Linux, macOS, FreeBSD) файл находится по пути:
`` /etc/hosts ``
Для редактирования используются команды sudo nano /etc/hosts или sudo vi /etc/hosts. Права на запись принадлежат пользователю root.
¶Android
На Android файл hosts может располагаться в:
`` /system/etc/hosts ``
Для его изменения требуются root-права. На устройствах без root доступ к файлу обычно закрыт.
¶iOS
На iOS файл hosts находится по пути:
`` /etc/hosts ``
Для редактирования требуется джейлбрейк или специальные приложения, работающие через VPN-профили.
¶Формат записей
Стандартный формат записи в файле hosts:
`` IP-адрес доменное-имя [дополнительные имена] ``
Примеры:
`` 127.0.0.1 localhost ::1 localhost 127.0.0.1 mysite.local dev.mysite.local 0.0.0.0 unwanted-site.com ``
Разделителем может выступать пробел или табуляция. Одна строка может содержать несколько имён, привязанных к одному адресу. IPv6-адреса указываются в стандартном формате.
¶Стандартное содержимое
В свежей установке Windows файл hosts содержит только комментарии и стандартные записи для localhost. В Linux файл обычно включает записи:
`` 127.0.0.1 localhost 127.0.1.1 имя-хоста ::1 ip6-localhost ip6-loopback ``
¶Порядок разрешения имён
Операционная система при обращении к домену выполняет следующие шаги:
- Проверяет локальный кэш DNS.
- Читает файл hosts.
- Если совпадение найдено — использует указанный адрес.
- Если совпадения нет — обращается к DNS-серверам, указанным в настройках сети.
Из этого следует, что записи в файле hosts имеют приоритет над DNS. Это свойство используется и для блокировки сайтов, и для их подмены.
¶Настройка DNS-серверов в связке с hosts
Файл hosts дополняет, но не заменяет настройку DNS-серверов. В Windows адреса DNS задаются в свойствах сетевого подключения, в Linux — в /etc/resolv.conf или через systemd-resolved. В связке с hosts это позволяет гибко управлять разрешением имён: часть доменов резолвится локально, остальные — через внешние DNS.
¶Типичные проблемы
- Изменения не вступают в силу. Необходимо сбросить кэш DNS командой
ipconfig /flushdns(Windows) илиsudo systemd-resolve --flush-caches(Linux). - Файл не сохраняется. Отсутствуют права администратора.
- Антивирус или вредоносное ПО может изменять файл hosts, перенаправляя трафик на фишинговые серверы. Периодическая проверка содержимого файла — рекомендуемая практика.
¶Историческая справка
До появления DNS файл hosts был единственным способом сопоставления имён хостов и адресов в сети ARPANET. Файл использовался в Unix-системах с 1970-х годов. С внедрением DNS в 1983 году механизм hosts сохранился как локальное дополнение и присутствует во всех современных ОС.
¶Источники
- RFC 952 — Доменные имена. Спецификация и поддержка
- RFC 1034 — Доменные имена. Концепции и возможности
- Документация Microsoft по файлу hosts
- Руководство по администрированию Linux
