Гид по технологиям

Файл hosts в Linux — как блокировать сайты и создавать локальные ярлыки

7 min read Linux Обновлено 01 Jan 2026
Файл hosts в Linux: блокировка сайтов и локальные ярлыки
Файл hosts в Linux: блокировка сайтов и локальные ярлыки

Важно: изменения в /etc/hosts влияют только на ту машину, где вы их внесли. Для сетевого или корпоративного уровня используйте DNS/Pi-hole/маршрутизатор.

Что такое файл hosts

Файл hosts — это простой текстовый файл, используемый операционной системой для преобразования имён хостов (например, wikipedia.org) в IP-адреса. Перед обращением к DNS-серверам система сначала проверяет этот файл. Это позволяет локально переопределять адреса, блокировать доступ к сайтам или давать простые имена локальным машинам.

Короткое определение: hosts — локальная таблица соответствий «имя ↔ IP», которая имеет приоритет над внешними DNS-запросами.

Почему это полезно:

  • Быстро блокировать или перенаправлять трафик на конкретной машине;
  • Создавать удобные псевдонимы для локальных серверов (например, homeserver вместо 192.168.1.10);
  • Тестировать веб-сайты, подменяя домен нужным IP без изменения публичного DNS.

Короткая историческая справка: до появления DNS файл hosts служил для всего интернета, но с ростом числа хостов эта модель стала непрактичной — так и появился DNS.

Расположение файла hosts в Linux

Файл находится по пути:

/etc/hosts

Это обычный текстовый файл. Для просмотра можно использовать любой текстовый редактор или команды типа cat/less.

Пример просмотра в терминале:

cat /etc/hosts

Права: файл системный — для сохранения изменений нужны права суперпользователя.

Как безопасно редактировать файл hosts

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

Мини-методология (шаги):

  1. Сделайте резервную копию текущего файла.
  2. Откройте файл в привычном редакторе с правами суперпользователя.
  3. Внесите изменения, соблюдая синтаксис: IP, таб или пробел, имя хоста.
  4. Сохраните и закройте редактор.
  5. Проверьте результат (ping, curl, браузер).
  6. Если что-то пошло не так — восстановите резервную копию.

Команды примера:

Создать резервную копию:

sudo cp /etc/hosts /etc/hosts.old

Открыть в nano:

sudo nano /etc/hosts

Открыть в графическом редакторе (если доступно):

sudo gedit /etc/hosts

Примечание: в некоторых дистрибутивах gksu/gksudo может использоваться для запуска GUI-приложений с правами root. Если gksu недоступен, используйте sudo или pkexec.

Ключевые правила синтаксиса:

  • Каждая запись на новой строке;
  • Сначала IP-адрес, затем один или несколько пробелов или символ табуляции, затем имя хоста;
  • Комментарии начинаются с # и игнорируются;
  • Можно указывать несколько имён через пробелы после IP.

Пример записи (блокировка):

127.0.0.1    wikipedia.org

Пример записи (локальный сервер):

192.168.1.10    homeserver

IPv6-замена для локального интерфейса:

::1    localhost

Примеры: как блокировать сайты и создавать ярлыки

Блокировать сайт (перенаправить на ваш компьютер):

127.0.0.1    example.com
127.0.0.1    www.example.com

Создать короткое локальное имя для сервера в домашней сети:

192.168.1.10    homeserver
192.168.1.11    nas

Создать тестовую подмену домена для разработки:

203.0.113.42    staging.example.local

Совет: указывая и root-домен, и www-поддомен, вы охватываете оба варианта обращения.

Как проверить изменения

Команды для проверки соответствий:

  • ping:
ping -c 1 wikipedia.org
  • curl (HTTP):
curl -I http://wikipedia.org
  • nslookup/dig покажут данные от DNS-сервера, но не от hosts (hosts действует локально):
nslookup wikipedia.org
dig wikipedia.org

Важно: nslookup обычно обращается к DNS и не учитывает /etc/hosts, поэтому для проверки именно локального перенаправления используйте ping или попытку подключения в браузере/через curl.

Типичные проблемы и ограничения

Когда hosts может не сработать:

  • Сайты с распределённой инфраструктурой (CDN) имеют множество IP; вы можете перехватить только один адрес;
  • HTTPS и SNI: браузер может установить соединение по другому IP, а сертификат не совпадёт с доменом — это вызывает предупреждение безопасности;
  • Браузеры и приложения могут кэшировать DNS-записи и игнорировать изменения вплоть до очистки кэша;
  • Некоторые приложения используют собственные DNS-резолверы или DNS через DoH/DoT, минуя системный резолвер;
  • В случае групповой сети или нескольких компьютеров изменения нужно вносить на каждой машине или применить сетевой DNS.

Chrome и специфическое поведение

Google Chrome иногда обходит файл hosts. Что делать:

  1. Вводите адрес с префиксом http:// (например, http://wikipedia.org). Без префикса Chrome может применять дополнительные сервисы автозаполнения и обходить локальные правила.
  2. Отключите настройку Chrome, которая использует веб‑службу для «помощи в определении навигационных ошибок». В русской версии это «Использовать веб-службу для устранения навигационных ошибок». После этого Chrome чаще будет уважать /etc/hosts.

Дополнительные шаги при проблемах:

  • Очистите кэш DNS на машине: sudo systemd-resolve –flush-caches (в systemd-системах) или перезапустите службу network-manager;
  • Очистите кэш браузера или перезапустите браузер;
  • Убедитесь, что записи корректны и нет опечаток.

Альтернативы и советы для сетевого уровня

Если нужно централизованно управлять блокировками и переадресациями в домашней или офисной сети, рассмотрите:

  • Настройку локального DNS-сервера (Bind, dnsmasq);
  • Pi-hole — блокировка на уровне DNS для всей сети;
  • Правила на уровне маршрутизатора (часто в прошивке можно блокировать домены или перенаправлять IP);
  • Брандмауэр/фильтрация на прокси-сервере.

Когда hosts лучше, а когда хуже

  • hosts отлично подходит для одиночных машин, для тестирования и простых локальных ярлыков;
  • для управления множеством устройств или для фильтрации рекламы/трекинга в сети предпочтительнее Pi-hole или DNS‑уровень.

Безопасность и приватность

Риски и рекомендации:

  • hosts — локальный файл; если на компьютере есть вредоносный софт с правами root, он может незаметно изменить файл. Не предоставляйте права sudo ненадёжным программам.
  • Регулярно проверяйте файл на неожиданные изменения (например, через контроль версий или простые скрипты сравнения).
  • Если вы используете hosts для блокировки трекеров, учтите, что многие современные сервисы используют CDN и динамические адреса.

GDPR и приватность: hosts не передаёт личные данные и не связан напрямую с обработкой персональных данных. Однако при централизованном логировании DNS на сервере могут появляться записи запросов — учитывайте это в политике конфиденциальности.

Руководство быстрого восстановления (runbook)

Шаги на случай, если после правки /etc/hosts пропал доступ к сети:

  1. Войдите локально или через sudo.
  2. Восстановите резервную копию:
sudo cp /etc/hosts.old /etc/hosts
  1. Перезапустите сетевой менеджер:
sudo systemctl restart NetworkManager.service
sudo systemctl restart systemd-resolved.service
  1. Проверьте соединение: ping 8.8.8.8 и ping google.com.
  2. Если проблемы сохраняются — проверьте логи и настройки DNS в /etc/resolv.conf.

Контроль качества: тесты и критерии приёмки

Критерии приёмки для правок в /etc/hosts:

  • Резервная копия создана и хранится на том же узле;
  • Синтаксис записей корректен (IP, таб/пробел, имя);
  • Проверка ping/ curl подтверждает ожидаемое поведение;
  • Нет лишних символов, BOM или неверной кодировки (используйте UTF-8 без BOM);
  • Изменения согласованы с заинтересованными пользователями (если машина не личная).

Примеры тест-кейсов:

  • Блокировка: после добавления 127.0.0.1 example.com вызов curl http://example.com должен не возвращать страницу с сайта;
  • Локальный ярлык: после добавления 192.168.1.10 homeserver браузер по адресу http://homeserver должен открывать нужный сервис;
  • Откат: после восстановления hosts.old прежнее поведение восстанавливается.

Чеклист для ролей

Администратор:

  • Сделать резервную копию;
  • Задокументировать изменения;
  • Проверить влияние на другие системы;
  • Уведомить пользователей при необходимости.

Родитель / пользователь дома:

  • Сделать резервную копию;
  • Добавить записи для блокировок или локальных устройств;
  • Проверить, что дети не имеют прав sudo или физического доступа к смене настроек.

Разработчик:

  • Использовать hosts для тестирования привязки домена к тестовому серверу;
  • Сверить с командой, чтобы не конфликтовать с CI/CD;
  • Откатить изменения после завершения теста, если требуется.

Полезные сниппеты и шаблоны

Блокировать набор доменов (пример):

127.0.0.1    ad.example.net
127.0.0.1    tracker.example.org
127.0.0.1    analytics.example.com

Шаблон записи с комментариями:

# IP-адрес    имя_хоста    # комментарий о назначении
192.168.1.10    homeserver    # домашний медиасервер

Ментальные модели и когда hosts — не решение

Модель: hosts — это локальная «папка заметок» для вашей ОС, где вы вручную говорите системе, куда идти по конкретным именам. Она хороша для индивидуальных и временных правок. Если вам нужно масштабируемое, централизованное или управляемое решение, думайте о DNS как о правильном инструменте.

Когда hosts не поможет:

  • Блокировка на уровне всей сети;
  • Управление многими клиентами;
  • Сценарии, где приложения используют DoH/DoT.

Примеры ошибок и как их решать

Ошибка: сайт по-прежнему открывается после добавления записи в hosts.

Проверки:

  • Правильно ли вы указали домен (www. и без)? Добавьте оба варианта;
  • Очищен ли DNS-кэш и кэш браузера? Перезапустите службы и браузер;
  • Не использует ли приложение собственный DNS (DoH)? Проверьте настройки приложения;
  • Была ли запись сохранена с правильной кодировкой и без BOM?

Ошибка: после правки интернета нет вообще.

Проверки:

  • Восстановите резервную копию и перезапустите сетевые службы;
  • Проверьте /etc/resolv.conf и настройки сетевого менеджера;
  • Откатите изменения и проверьте, вернётся ли соединение.

Заключение

Файл hosts — простой и мощный инструмент для локального управления соответствием имён и IP-адресов. Он идеален для блокировок на уровне одной машины, простых локальных ярлыков и временной подмены DNS для тестирования. Всегда выполняйте резервное копирование, учитывайте ограничения (CDN, SNI, DoH) и выбирайте сетевые решения (DNS, Pi-hole) для централизованного управления.

Краткое резюме:

  • hosts — локальная таблица «имя ↔ IP»;
  • Располагается в /etc/hosts на Linux;
  • Требует прав суперпользователя для редактирования;
  • Подходит для одиночных машин и тестирования; для сети используйте DNS или Pi-hole.

Файл hosts в текстовом редакторе на Linux

Пример содержимого файла hosts

Окно приложения Domain Blocker в Linux Mint

В конце: если вы хотите массово управлять блокировками в домашней сети, рассмотрите переход от hosts к Pi-hole или локальному DNS-серверу — это сократит ручную работу и позволит централизовать политику блокировок.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство