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

Файл 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 ``

Порядок разрешения имён

Операционная система при обращении к домену выполняет следующие шаги:

  1. Проверяет локальный кэш DNS.
  2. Читает файл hosts.
  3. Если совпадение найдено — использует указанный адрес.
  4. Если совпадения нет — обращается к 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
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru