Введение / Зачем это нужно
Файл hosts — это локальный текстовый файл в Windows, который позволяет вручную сопоставлять доменные имена (например, site.com) с IP-адресами. Эта система существует с начала интернета и работает до обращения к DNS-серверам.
Основные применения:
- Блокировка нежелательных сайтов (рекламы, вредоносных доменов) путём перенаправления их на
127.0.0.1. - Локальная разработка и тестирование — например, чтобы
myapp.localв браузере открывался на ваш локальный веб-сервер (127.0.0.1:8080). - Перенаправление доменов на другой сервер без изменения DNS.
Этот гайд покажет, как безопасно отредактировать этот системный файл в Windows 10 и 11.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть права администратора на компьютере. Без них вы не сможете сохранить изменения в системной папке.
- У вас есть простой текстовый редактор (Блокнот, Notepad++, VS Code).
- Вы понимаете, какой IP-адрес и домен хотите сопоставить.
- (Опционально) Создайте резервную копию исходного файла
hosts. Просто скопируйте его в другое место (например, на Рабочий стол) под именемhosts.backup.
Шаг 1: Найдите и откройте файл hosts с правами администратора
Файл hosts находится в защищённой системной папке. Прямой путь: C:\Windows\System32\drivers\etc\.
Как открыть:
- Откройте Проводник и перейдите по пути
C:\Windows\System32\drivers\etc\. - Вы увидите файл
hosts(без расширения.txt). Если расширение.txtотображается, значит, у вас включено отображение расширений, и файл будет называтьсяhosts.txt. - Не пытайтесь дважды кликнуть на файл! Это не сработает, так как у него нет ассоциации с программой. Вместо этого:
- Щёлкните правой кнопкой мыши по файлу
hosts. - Выберите «Открыть с помощью» → «Выбрать другое приложение».
- В списке найдите и выберите Блокнот (или ваш редактор).
- ВАЖНО: Перед нажатием «ОК» обязательно поставьте галочку «Всегда использовать это приложение для открытия файлов .txt» (даже если у файла нет расширения, система считает его текстовым).
- Щёлкните правой кнопкой мыши по файлу
- Альтернативный (и часто более удобный) способ:
- Откройте Блокнот.
- В меню выберите «Файл» → «Открыть».
- В диалоговом окне в поле «Тип файла» выберите «Все файлы (.)».
- Перейдите в папку
C:\Windows\System32\drivers\etc\и выберите файлhosts.
Если вы получаете ошибку «Отказано в доступе», значит, Блокнот был запущен без прав администратора. Закройте его, найдите Блокнот в меню «Пуск», щёлкните правой кнопкой и выберите «Запуск от имени администратора», затем откройте файл через него.
Шаг 2: Добавьте необходимую запись
Открытый файл hosts содержит несколько строк-комментариев (начинаются с #) и, возможно, несколько стандартных записей. Всё, что начинается с #, игнорируется системой.
Формат записи:
<IP-адрес><пробел><доменное_имя>
Примеры:
127.0.0.1 localhost— стандартная запись для локального компьютера (обычно уже есть).127.0.0.1 ads-site.com— блокировка сайтаads-site.com.192.168.1.100 myproject.local— перенаправлениеmyproject.localна локальный сервер с IP192.168.1.100.0.0.0.0 tracking.net— альтернативный способ блокировки (адрес0.0.0.0также означает «ничего»).
Важные правила:
- Каждая запись — с новой строки.
- Между IP и доменом хотя бы один пробел или табуляция.
- Не добавляйте лишних символов, особенно после домена.
- Для блокировки поддоменов (например,
sub.ads-site.com) нужно прописывать каждый поддомен отдельно или использовать маскировку через локальный DNS-сервер (файл hosts не поддерживает маски*).
Шаг 3: Сохраните файл в правильной кодировке
Это самая частая причина того, что изменения не работают! По умолчанию Блокнот сохраняет файлы в кодировке UTF-8 с BOM, которую система может неправильно прочитать.
Как правильно сохранить:
- В Блокноте нажмите «Файл» → «Сохранить» (или
Ctrl+S). - В диалоговом окне «Тип файла» выберите «Все файлы (.)».
- Убедитесь, что в поле «Имя файла» указано просто
hosts(без.txt). - Нажмите на выпадающий список «Кодировка» и выберите ANSI (для английской Windows) или UTF-8 (для русской, но без BOM — в современных версиях Блокнота при выборе UTF-8 сохраняется без BOM по умолчанию). Если сомневаетесь — выбирайте ANSI.
- Нажмите «Сохранить». Если система запросит подтверждение замены файла — согласитесь.
Если вы используете Notepad++:
- После редактирования выберите «Кодировка» → «Преобразовать в ANSI».
- Затем сохраните (
Ctrl+S). Файл будет перезаписан корректно.
Шаг 4: Очистите кэш DNS
Windows кэширует результаты DNS-запросов для ускорения работы. После изменения файла hosts старые записи могут ещё использоваться.
- Откройте Командную строку (cmd) или PowerShell от имени администратора.
- Введите команду:
ipconfig /flushdns - Вы должны увидеть сообщение:
Очистка кэша разрешения DNS успешно завершена.
Примечание: На некоторых системах (особенно с антивирусами) может потребоваться перезагрузка, но в большинстве случаев ipconfig /flushdns достаточно.
Шаг 5: Проверьте результат
Способ 1: Пинг (cmd)
- Откройте командную строку (не обязательно от админа).
- Выполните:
Заменитеping example.comexample.comна домен, который вы прописали в hosts. - В ответе должен быть IP-адрес, который вы указали в файле (например,
127.0.0.1), а не настоящий IP сайта.
Способ 2: Браузер
- Откройте браузер и перейдите по домену.
- Если вы блокировали сайт — он не должен загрузиться (ошибка
ERR_CONNECTION_REFUSEDили аналогичная). - Если вы перенаправляли на локальный сервер — должен открыться ваш локальный проект.
Способ 3: Просмотр текущего разрешения (nslookup)
nslookup example.com
Эта команда покажет, какой DNS-сервер дал ответ. Но учтите, что nslookup может не учитывать файл hosts, так как использует собственный механизм запроса. Лучше полагаться на ping.
Возможные проблемы
❌ «Отказано в доступе» при сохранении
- Причина: Блокнот запущен без прав администратора.
- Решение: Закройте редактор, запустите его заново через «Запуск от имени администратора».
❌ Изменения не вступают в силу после ipconfig /flushdns
- Проверьте синтаксис: Убедитесь, что нет лишних символов после домена, а между IP и доменом есть пробел.
- Проверьте кодировку: Файл должен быть в ANSI или UTF-8 без BOM.
- Антивирус/Защитник Windows: Некоторые антивирусы (Avast, AVG, Kaspersky) или встроенный Защитник могут «восстанавливать» файл hosts. Временно отключите защиту hosts в настройках антивируса.
- Прокси-серверы/Брандмауэр: Если используется корпоративный прокси, локальные правила hosts могут игнорироваться.
❌ Блокировка не работает для HTTPS-сайтов
- Причина: Файл hosts работает на уровне IP. Если вы блокируете
https://site.comчерез127.0.0.1, браузер попытается установить HTTPS-соединение с127.0.0.1и получит ошибку SSL (сертификат не подходит). Это нормально и подтверждает блокировку. - Для полной блокировки (чтобы не было даже попытки соединения) используйте адрес
0.0.0.0.
❌ Не работает для поддоменов
- Файл hosts не поддерживает маски (
*.site.com). Нужно прописывать каждый поддомен отдельно. Для массовой блокировки лучше использовать специализированные программы (например, HostsMan) или настройки брандмауэра.
❌ Сайт всё равно загружается
- Проверьте, нет ли опечаток в домене.
- Проверьте, не переопределяет ли запись более высокий приоритет (например, настройки VPN или DNS-сервера в сети). В крайнем случае попробуйте временно отключить VPN/антивирус.
- Убедитесь, что вы не сохранили файл как
hosts.txt. Система ищет файл с именемhostsбез расширения.
❌ Система «удалила» мои записи после перезагрузки
- Причина: Активность вредоносного ПО или некоторые системные утилиты (например, «Чистка диска» от Microsoft) могут сбрасывать файл hosts.
- Решение: Регулярно проверяйте целостность системы, используйте антивирус. Для постоянной блокировки рассмотрите использование брандмауэра (Windows Defender Firewall) или расширений для браузера (uBlock Origin).