Запись вида 127.0.0.1 example.com добавлена в файл hosts, а сайт по-прежнему открывается с реального адреса — это типичный симптом того, что система игнорирует файл или читает не ту его копию. Чаще всего причина кроется не в самой записи, а в кэше DNS, неверной кодировке файла, лишнем расширении .txt или в том, что браузер использует собственный DNS-резолвер поверх системного.
Ниже разберём пошаговую диагностику: от проверки расположения и формата файла до сброса кэша и особенностей браузеров с функцией DNS-over-HTTPS. Все шаги обратимы и не требуют переустановки системы.
Как система работает с файлом hosts
Файл hosts — это текстовый файл без расширения, который операционная система просматривает до обращения к DNS-серверам. Если в нём есть запись для запрошенного домена, используется указанный в файле IP-адрес, и внешний DNS не опрашивается. Именно поэтому hosts удобен для блокировки сайтов, локальной разработки и перенаправления доменов.
В Windows файл расположен по пути C:\Windows\System32\drivers\etc\hosts, в Linux и macOS — /etc/hosts. Формат записи простой: сначала IP-адрес, затем через пробел или табуляцию доменное имя. Строки, начинающиеся с символа #, считаются комментариями и игнорируются.
⚠️ Внимание: для каждого домена с www и без www нужна отдельная строка. Запись дляexample.comне распространяется автоматически наwww.example.com— это одна из самых частых причин «неработающего» hosts.
Проверка пути, имени и расширения файла
Первое, что стоит проверить, — редактируется ли именно тот файл, который читает система. Проводник Windows по умолчанию скрывает расширения, поэтому нередко файл на самом деле называется hosts.txt, и система его попросту не видит.
- 📂 Откройте папку
C:\Windows\System32\drivers\etcи включите отображение расширений: Вид → Расширения имён файлов. - 📄 Убедитесь, что файл называется строго
hostsбез какого-либо расширения. - ✏️ Редактируйте файл через «Блокнот», запущенный от имени администратора, иначе изменения не сохранятся.
- 🚫 Не создавайте рядом копии вида
hosts.bakилиhosts — копияв той же папке — лишние файлы могут путать при диагностике.
Если файл сохраняется с ошибкой доступа, возможная причина — недостаточные права или атрибут «Только чтение». Проверьте свойства файла и убедитесь, что редактор запущен с повышенными привилегиями.
☑️ Базовая проверка файла hosts
Очистка кэша DNS
Даже при корректном файле система может отдавать старый адрес из кэша. После правки hosts необходимо сбросить DNS-кэш — иначе проверка покажет прежний результат, и будет казаться, что файл не работает.
В Windows откройте командную строку от имени администратора и выполните:
ipconfig /flushdns
После этого проверьте, какой адрес возвращает система для нужного домена:
ping example.com
Если ping показывает IP из вашей записи в hosts — файл работает, и проблема, скорее всего, на стороне браузера. Если возвращается реальный адрес из интернета, система файл игнорирует, и нужно возвращаться к проверке пути, кодировки и содержимого.
Кодировка и невидимые символы
Менее очевидная причина — кодировка и служебные символы в файле. Некоторые редакторы сохраняют текст в UTF-8 с меткой BOM, и системный парсер может некорректно обработать такой файл. Безопасный вариант — сохранять hosts в ANSI или UTF-8 без BOM, если ваш редактор позволяет это выбрать.
Также мешают невидимые пробелы в конце строк, табуляции, скопированные из веб-страниц, и «неразрывные пробелы». Если запись выглядит правильно, но не срабатывает, удалите строку целиком и наберите её заново вручную, используя обычный пробел между адресом и доменом.
Скопируйте содержимое hosts в новый пустой файл, заново наберите проблемные строки вручную и сохраните в кодировке без BOM — это исключает скрытые символы, попавшие при копировании из браузера.
Браузер с DNS-over-HTTPS обходит hosts
Современные браузеры умеют резолвить домены самостоятельно через DNS-over-HTTPS (DoH). В этом режиме браузер может не обращаться к системному резолверу и, соответственно, к файлу hosts. Внешне это выглядит так: ping показывает адрес из hosts, а сайт в браузере открывается с реального сервера.
Проверьте настройки браузера: в разделе приватности или сети найдите параметр защищённого DNS и временно отключите его, затем перезапустите браузер и проверьте снова. Название и расположение настройки зависят от браузера и его версии, поэтому сверьтесь с документацией вашего обозревателя. Дополнительно помогает очистка кэша браузера или проверка в режиме инкогнито.
⚠️ Внимание: если hosts используется для блокировки нежелательных сайтов, включённый DoH у пользователя фактически обходит эту блокировку. Учитывайте это при настройке родительского контроля или корпоративных ограничений.
Почему ping и браузер показывают разное
Утилита ping использует системный резолвер Windows, который читает hosts напрямую. Браузер с включённым DoH отправляет DNS-запрос по зашифрованному соединению на свой сервер, минуя системный резолвер и файл hosts. Поэтому результаты различаются — и это нормальное поведение, а не поломка.
Стороннее ПО и антивирусы
Некоторые антивирусы и защитные утилиты контролируют файл hosts, блокируя его изменение или восстанавливая исходное содержимое. Если записи «исчезают» после перезагрузки или не сохраняются, проверьте журнал вашего антивируса — возможно, он откатывает правки как подозрительные.
Также на резолвинг влияют VPN-клиенты, прокси и сетевые фильтры: они могут направлять DNS-запросы через собственные серверы. Для чистой диагностики временно отключите VPN и прокси, повторите ipconfig /flushdns и проверьте результат ещё раз.
Диагностику ведите по цепочке: ping → системный резолвер → браузер. Место, где цепочка «ломается», и указывает на истинную причину.
Сводная таблица симптомов и причин
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Файл не сохраняется | Нет прав администратора или атрибут «только чтение» | Запуск редактора от имени администратора, свойства файла |
| ping показывает реальный IP | Файл в неверной папке, лишнее расширение, DNS-кэш | Путь, имя файла, ipconfig /flushdns |
| ping верный, браузер открывает старый сайт | DoH в браузере или его кэш | Настройки защищённого DNS, очистка кэша |
| Работает без www, не работает с www | Отсутствует отдельная строка для поддомена | Добавить запись для www.домен |
| Записи пропадают после перезагрузки | Антивирус восстанавливает файл | Журнал защитного ПО, исключения |
Частые вопросы
Нужна ли перезагрузка компьютера после правки hosts?
Обычно нет. Достаточно выполнить ipconfig /flushdns и перезапустить браузер. Перезагрузка может потребоваться, только если изменения блокирует стороннее ПО.
Можно ли в hosts указать порт или адрес страницы?
Нет. Файл работает только на уровне «домен → IP-адрес». Порты, протоколы и отдельные страницы в нём указать нельзя — для этого нужны другие инструменты, например локальный прокси.
Почему запись с 127.0.0.1 не блокирует сайт полностью?
Возможные причины: у сайта есть зеркала на других доменах, браузер использует DoH, или открывается версия с www, для которой нет отдельной строки. Проверьте все три варианта.
Работает ли hosts на смартфоне?
На Android и iOS файл hosts существует, но его редактирование требует root- или jailbreak-доступа, что связано с рисками и потерей гарантии. Безопасная альтернатива — приложения локальной фильтрации DNS без системных модификаций.
Чем открыть файл, если Блокнот портит кодировку?
Подойдёт любой редактор с выбором кодировки, например Notepad++: откройте файл, убедитесь, что выбрана кодировка ANSI или UTF-8 без BOM, и сохраните. Редактор также нужно запускать с правами администратора.