Не работает файл hosts в Windows — варианты решения

Что делать если не работает файл hosts в WindowsПри редактировании файла hosts в Windows 11/10, например, для блокировки (или её отключения) доступа к определённым доменом или для локальной разработки, некоторые пользователи сталкиваются с тем, что внесённые изменения не работают и игнорируются при попытке доступа к соответствующим доменам.

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

Простые причины и способы исправить ситуацию

Пример файла hosts

Сначала о распространённых у начинающих пользователей причинах, приводящих к неработоспособности файла hosts и подходах к решению:

  1. Сохранение в формате .TXT при редактировании в Блокноте — по умолчанию, если вы откроете файл hosts в «Блокноте», а потом выберите в меню пункт «Сохранить как», файл будет сохраняться с расширением .txt, а оригинальный файл hosts в расположении
    C:\Windows\System32\drivers\etc
    не имеет расширения. Если вы запустили Блокнот не от имени Администратора (способы запуска программ от имени Администратора), то же самое произойдёт при выборе пункта «Сохранить». Решение — редактировать hosts только в ПО, запущенном от имени администратора, а при использовании блокнота выбирать опцию «Все файлы» вместо «Текстовые документы» в поле «Тип файла» и сохранять файл без какого-либо расширения. В актуальных версиях Windows 11/10 файл hosts имеет кодировку UTF-8 без BOM, ANSI тоже исправно работает, а вот другие варианты могут не обрабатываться правильно службой DNS в Windows. Сохранение файла hosts в блокноте
  2. Ошибки в формате ввода строк: правильный вариант выглядит как
    IP-адрес пробел_или_табуляция домен
    например:
    127.0.0.1 remontka.pro
    без каких-либо знаков # в начале строки (они означают, что строка является нефункциональным комментарием). Также следует учитывать, что в файле hosts не поддерживаются номера портов и маски (например, * для замены любых символов), в некоторых случаях требуется прописывать как домены, так и поддомены, например:
    127.0.0.1 remontka.pro
    127.0.0.1 www.remontka.pro
  3. Использование различных популярных сегодня в России «средств для Интернета»: при подключении к ним разрешение доменов может происходить на стороне сервера и локальный hosts никак не учитывается. Решение добавлять домен в исключения в соответствующем сервисе.
  4. После внесения изменений в файл hosts, очистите кэш DNS в Windows и браузере. Запустите командную строку от имени Администратора и введите команду
    ipconfig /flushdns
    В браузерах Google Chrome, Microsoft Edge и Яндекс используйте следующие страницы соответственно:
    chrome://net-internals/#dns
    edge://net-internals/#dns
    browser://net-internals/#dns
    и кнопку «Clear host cache». Очистка кэша DNS в браузере
  5. Проверьте журнал Microsoft Defender (Защитника Windows) или другого антивируса: не регистрируются ли там события, связанные с модификацией файла hosts (HostsFileHijack) с автоматическим его откатом. При наличии таких обнаружений и, если они вызываются именно вашими целенаправленными действиями, разрешите их в антивирусе и повторите редактирование.

В простых случаях одного из описанного пунктов бывает достаточно, однако иногда причины того, что перенаправления из hosts не срабатывают лежат глубже. О них — в следующем разделе.

Другие варианты

Если всё перечисленное выше не подходит к вашей ситуации, обратите внимание на следующие возможные причины/решения:

  • Использование DNS-over-HTTPS в браузере приведёт к тому, что запросы для разрешения имён будут отправляться мимо системной службы DNS Windows. Проверьте настройки использования безопасного DNS-сервера в вашем браузере, которые обычно можно быстро найти в параметрах, использовав поиск по слову DNS, стандартное расположение — настройки конфиденциальности и безопасности. Отключение DoH в настройках браузера
  • Если ваш провайдер поддерживает IPv6, а вы добавили лишь строку с IPv4, это может не сработать из-за приоритета 6-й версии протокола TCP/IP. Решение — добавлять строки для обеих версий протокола, например, для перенаправления на localhost:
    127.0.0.1 remontka.pro
    ::1 remontka.pro
    И, менее желательно — отключение протокола IPv6 в свойствах подключения в Win+R — ncpa.cpl
  • При редактировании файла hosts для отключения блокировок сайтов антивирусов и компьютерных сайтов, сделанных каким-либо вирусом или другим вредоносным ПО, то при условии, что он всё ещё «жив», ваши изменения могут автоматически откатываться, а блокировки включаться вновь. Подробнее на тему — в отдельной инструкции.
  • В ситуации, когда изменения в hosts вносились для доступа к локальному серверу по имени домена возможна ситуация, когда браузер будет блокировать открытие домена, для которого включен HSTS если на сервере нет валидного SSL-сертификата.

Убедиться, что файл работает можно не только в браузере, но и в командной строке, более того это поможет определить: проблема на уровне самой ОС или конкретного ПО/браузера (если в командной строке всё исправно работает, а в браузере или программе — нет, причину следует искать именно в настройках её взаимодействия с Интернетом и серверами DNS). Например, вы можете выполнить команды:

ping домен_из_файла_hosts.ком
ping -4 домен_из_файла_hosts.ком

и посмотреть, с каким сервером выполняется обмен данными. Если IP-адрес верный, то на уровне системы файл hosts работает исправно:

Проверка работы hosts в командной строке

Надеюсь, всё получилось и у вас получилось добиться нужного результата. Если же вопросы остаются, вы можете задать их в комментариях ниже, я постараюсь подсказать решение.

Оставить комментарий

Новое