Hosts на Андроид: редактирование, блокировка сайтов и нюансы

Файл hosts на Android находится по пути /system/etc/hosts, и без root-прав система не даст его ни изменить, ни даже перезаписать через обычный файловый менеджер. Именно это ограничение чаще всего становится причиной вопросов: пользователь находит инструкцию по блокировке рекламы через hosts, пытается сохранить изменения — и получает ошибку доступа.

Ниже разберём, где искать этот файл, как его редактировать с root-доступом, какие есть альтернативы без рута и какие риски несёт неправильная правка. Часть шагов зависит от версии Android и конкретной прошивки, поэтому там, где поведение может отличаться, это будет отдельно отмечено.

Что такое файл hosts и зачем он нужен на Android

Hosts — это текстовый файл, который система проверяет до обращения к DNS-серверу. Если в нём указано соответствие домена и IP-адреса, Android использует именно эту запись, игнорируя ответ DNS. Так работает принцип локального разрешения имён: запись в hosts имеет приоритет над внешними серверами.

Типичная строка выглядит так: 127.0.0.1 example.com. Она перенаправляет запросы к домену example.com на локальный адрес устройства, и фактически сайт перестаёт открываться. На этом основаны два основных сценария использования файла.

  • 🚫 Блокировка рекламы и трекеров — домены рекламных сетей перенаправляются на 127.0.0.1.
  • 🔒 Запрет доступа к сайтам — например, для ограничения отвлекающих ресурсов.
  • 🛠️ Разработка и тестирование — перенаправление домена на тестовый сервер.
  • 🌐 Обход DNS-проблем — ручное указание IP, если DNS провайдера работает некорректно.

Где находится файл hosts и как его посмотреть

Полный путь к файлу — /system/etc/hosts. Это системный раздел, который по умолчанию смонтирован в режиме «только чтение». Просмотреть содержимое обычно можно даже без root — например, через файловый менеджер с доступом к корневым каталогам или через терминал командой:

cat /system/etc/hosts

Стандартное содержимое минимально: как правило, там всего одна-две строки вида 127.0.0.1 localhost. Если в файле уже есть десятки записей на неизвестные домены, а вы их не добавляли — это повод проверить устройство, поскольку подобные изменения иногда вносят вредоносные приложения с root-доступом.

⚠️ Внимание: если на устройстве включена проверка целостности системного раздела (например, dm-verity, которая есть на многих современных прошивках), прямая правка /system может привести к невозможности загрузки устройства. Перед любыми изменениями системного раздела убедитесь, что у вас есть способ восстановить прошивку.

Как отредактировать hosts с root-доступом

Для полноценной правки нужен root-доступ и перемонтирование системного раздела в режим записи. Общая логика процесса такова: сначала раздел переводится из режима чтения в режим записи, затем файл редактируется, после чего изменения сохраняются. Конкретные команды зависят от способа получения root (Magisk и другие решения работают по-разному).

su

mount -o rw,remount /system

далее правка файла, например через vi или echo

echo "127.0.0.1 unwanted-site.com" >> /system/etc/hosts

На устройствах с Magisk прямое изменение /system не требуется: там применяется системный механизм наложений, и существуют модули, которые подменяют hosts без модификации раздела. Это более безопасный путь, поскольку заводская прошивка остаётся нетронутой, а проверки целостности не нарушаются.

☑️ Безопасная правка hosts с root

Выполнено: 0 / 5

Проверить результат можно просто: откройте заблокированный домен в браузере. Если запись работает, сайт не загрузится. Если сайт по-прежнему открывается — возможно, браузер кэшировал DNS-ответ; попробуйте очистить кэш браузера или перезагрузить устройство.

Как заблокировать сайты через hosts без root

Без root-доступа отредактировать /system/etc/hosts нельзя — это ограничение архитектуры Android, и обойти его штатными средствами не получится. Однако существуют приложения, которые реализуют ту же логику блокировки через локальный VPN-интерфейс: трафик проходит через приложение, а оно фильтрует домены по списку, имитируя работу hosts.

Такие решения не изменяют системный файл, а значит, не требуют root и не затрагивают прошивку. Обратная сторона — приложение должно постоянно работать в фоне, а одновременно с ним нельзя использовать другой VPN, поскольку Android поддерживает только один активный VPN-туннель.

📊 Какой способ блокировки сайтов на Android вы используете?
Правка hosts с root
Приложение с локальным VPN
Private DNS
Пока только выбираю способ

Ещё один вариант без root — функция Private DNS (частный DNS), которая есть в настройках сети на современных версиях Android. Она позволяет указать DNS-сервер с фильтрацией. Это не замена hosts в полном смысле: задать произвольные соответствия «домен — IP» через неё нельзя, но для блокировки рекламы и нежелательных категорий сайтов метод работает.

Сравнение способов блокировки на Android

Каждый метод имеет свои ограничения. Сводная таблица поможет выбрать подходящий под вашу ситуацию.

СпособНужен rootГибкостьРиски
Правка /system/etc/hostsДаПолная: любые соответствия домен–IPПовреждение системного раздела, конфликт с проверкой целостности
Модуль Magisk для hostsДа (Magisk)Полная, раздел не изменяетсяМинимальные при корректной установке
Приложение с локальным VPNНетБлокировка по спискам доменовЗанимает единственный VPN-слот, фоновая работа
Private DNSНетТолько фильтрация через выбранный DNSНет произвольных записей, зависимость от DNS-провайдера

Типичные ошибки при редактировании hosts

Частая проблема — нарушение синтаксиса. Каждая запись должна быть на отдельной строке, сначала IP-адрес, затем через пробел или табуляцию домен. Строки, начинающиеся с символа #, считаются комментариями и игнорируются.

  • Лишние пробелы и символы — невидимые символы при копировании из браузера ломают строку.
  • Указание протокола — запись вида 127.0.0.1 https://site.com не сработает, указывается только домен.
  • Забытые поддомены — блокировка site.com не блокирует www.site.com, их нужно прописывать отдельно.
  • Сохранение в неправильной кодировке — файл должен быть в plain text без BOM.

⚠️ Внимание: не удаляйте строку 127.0.0.1 localhost из файла. Она нужна для корректной работы ряда системных процессов, и её отсутствие может вызвать сбои в работе отдельных приложений.

Отдельно стоит упомянуть кодировку и окончания строк. Если редактировать файл на ПК в редакторе, который сохраняет текст с Windows-окончаниями строк (CRLF), часть инструментов Android может обработать файл некорректно. Безопаснее править файл прямо на устройстве или убедиться, что редактор сохраняет в Unix-формате (LF).

Почему заблокированный сайт всё равно открывается

Наиболее вероятные причины — кэш DNS браузера или системы, запись добавлена только для домена без www, приложение использует собственный DNS поверх системного (DNS-over-HTTPS внутри приложения), либо изменения вступили в силу только после перезагрузки. Проверяйте по очереди: перезагрузка, другой браузер, оба варианта домена в файле.

Риски и ограничения метода

Блокировка через hosts — не панацея. Многие приложения и браузеры умеют использовать собственный DNS-over-HTTPS, и тогда они обращаются к DNS напрямую, минуя системное разрешение имён и, соответственно, файл hosts. В таком случае записи просто не сработают для конкретного приложения.

Кроме того, устройства с заблокированным загрузчиком и активной проверкой целостности системы могут отказаться загружаться после модификации раздела. Любая правка /system без использования systemless-подхода потенциально способна привести к bootloop — циклической перезагрузке устройства. Поэтому предпочтительны методы, не затрагивающие раздел: модули Magisk или VPN-приложения.

⚠️ Внимание: получение root-доступа обычно аннулирует гарантию производителя и может нарушить работу банковских приложений и сервисов оплаты, которые проверяют целостность системы. Взвесьте необходимость root именно под вашу задачу — для простой блокировки рекламы он не обязателен.

Как восстановить hosts по умолчанию

Если после правок возникли проблемы — не открываются нужные сайты, сбоит сеть — файл можно вернуть к исходному состоянию. Стандартное содержимое, как правило, сводится к одной строке:

127.0.0.1 localhost

При использовании модуля Magisk достаточно отключить или удалить модуль и перезагрузиться — оригинальный раздел не изменялся, поэтому восстанавливать нечего. Если файл правился напрямую, потребуется root-доступ и запись исходного содержимого обратно, поэтому резервная копия перед правкой — не формальность, а реальный способ быстрого отката.

Когда откат не помогает и сеть работает нестабильно, проверьте дополнительные факторы: активный VPN, настройки Private DNS, кэш приложений. Часто проблема оказывается не в hosts, а в параллельно настроенном фильтрующем сервисе, о котором забыли.

Часто задаваемые вопросы

Можно ли редактировать hosts на Android без root?

Нет, сам файл /system/etc/hosts без root изменить нельзя — системный раздел защищён от записи. Без root доступны альтернативы: приложения с локальным VPN или функция Private DNS.

Почему после правки hosts сайт всё равно открывается?

Возможные причины: кэш DNS браузера, отсутствие записи для поддомена www, приложение использует собственный DNS-over-HTTPS, либо изменения не применились до перезагрузки. Проверяйте эти пункты последовательно.

Опасно ли редактировать hosts?

Сам файл безобиден, но способ его изменения может быть рискованным. Прямая модификация раздела /system на устройствах с проверкой целостности способна привести к невозможности загрузки. Безопаснее использовать модули Magisk или решения без root.

Блокирует ли hosts рекламу во всех приложениях?

Не гарантированно. Приложения, которые обращаются к DNS напрямую или используют зашитые IP-адреса, обходят hosts. Кроме того, многие рекламные сети отдают контент с тех же доменов, что и основной контент, и заблокировать их записью в hosts невозможно.

Что должно быть в hosts по умолчанию?

Как правило, только строка 127.0.0.1 localhost. Если в файле много незнакомых записей, которые вы не добавляли, стоит проверить устройство на наличие нежелательного ПО с root-доступом.