Файл 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
Проверить результат можно просто: откройте заблокированный домен в браузере. Если запись работает, сайт не загрузится. Если сайт по-прежнему открывается — возможно, браузер кэшировал DNS-ответ; попробуйте очистить кэш браузера или перезагрузить устройство.
Как заблокировать сайты через hosts без root
Без root-доступа отредактировать /system/etc/hosts нельзя — это ограничение архитектуры Android, и обойти его штатными средствами не получится. Однако существуют приложения, которые реализуют ту же логику блокировки через локальный VPN-интерфейс: трафик проходит через приложение, а оно фильтрует домены по списку, имитируя работу hosts.
Такие решения не изменяют системный файл, а значит, не требуют root и не затрагивают прошивку. Обратная сторона — приложение должно постоянно работать в фоне, а одновременно с ним нельзя использовать другой VPN, поскольку Android поддерживает только один активный VPN-туннель.
Ещё один вариант без 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-доступом.