Файл hosts на Android лежит по пути /system/etc/hosts, и без root-прав изменить его штатными средствами нельзя — системный раздел смонтирован в режиме «только чтение». Поэтому первое, что нужно проверить перед правкой: есть ли на устройстве root-доступ, например через Magisk, и не заблокирована ли запись в раздел /system на современных версиях Android с динамическими разделами.
Если root отсутствует, редактировать hosts напрямую не получится, но существуют обходные варианты — локальные VPN-приложения с фильтрацией доменов. Ниже разберём оба сценария: классическую правку файла с правами суперпользователя и альтернативы для устройств без рута.
Что такое hosts и зачем его менять
Файл hosts — это локальная таблица соответствия доменных имён и IP-адресов. Когда приложение обращается к сайту, система сначала проверяет hosts, и только если записи там нет — отправляет запрос к DNS-серверу. Это позволяет вручную «привязать» домен к нужному адресу или заблокировать его, указав 127.0.0.1.
Типичные задачи, ради которых редактируют hosts на Android:
- 🚫 блокировка рекламных и трекинговых доменов на уровне системы;
- 🔧 перенаправление домена на тестовый сервер при разработке и отладке;
- 🛡️ ограничение доступа к отдельным сайтам на детском устройстве;
- 🌐 обход некорректных DNS-записей, когда домен должен открываться с конкретного IP.
Проверка root-доступа и подготовка
Прежде чем что-либо менять, убедитесь, что root-доступ действительно работает. Откройте приложение-менеджер root (например, Magisk) и проверьте статус, либо запустите в терминале команду su — при успехе приглашение сменится на символ #. Если запроса прав не появилось, root на устройстве отсутствует, и прямая правка hosts недоступна.
Второй момент — на устройствах с динамическими разделами (большинство моделей на Android 10 и новее) раздел /system нельзя перемонтировать в режим записи обычной командой. В таком случае правку выполняют через модуль Magisk, который подменяет файл поверх системы, не изменяя сам раздел.
⚠️ Внимание: неправильная запись в hosts может нарушить работу приложений и синхронизации аккаунтов. Перед правкой обязательно сохраните копию исходного файла — это займёт секунду, а откат позволит вернуть всё за минуту.
Способ 1: правка через файловый менеджер с root
Это самый наглядный метод для устройств, где системный раздел доступен на запись. Подойдёт любой файловый менеджер с поддержкой root, например MiXplorer или Solid Explorer с root-плагином — конкретный набор функций зависит от версии приложения, поэтому проверяйте наличие режима «root explorer» в настройках.
Порядок действий:
- 📂 откройте файловый менеджер и включите в настройках режим root-доступа;
- 📄 перейдите в
/system/etc/и найдите файлhosts; - 💾 скопируйте его в память телефона как резервную копию;
- ✏️ откройте файл встроенным текстовым редактором и добавьте нужные строки в формате
IP-адрес домен; - ✅ сохраните файл и убедитесь, что права доступа остались
644(rw-r--r--).
☑️ Правка hosts через файловый менеджер
Если при сохранении появляется ошибка «read-only file system», раздел защищён от записи — переходите к способу через Magisk-модуль, описанному ниже.
Способ 2: правка через ADB и терминал
Для тех, кто привык к командной строке, удобнее работать через ADB с компьютера или через терминальное приложение на самом устройстве. Сначала на ПК должны быть установлены драйверы устройства и утилита ADB, а в настройках разработчика на телефоне — включена отладка по USB.
Типовая последовательность команд выглядит так (на устройствах без динамических разделов):
adb root
adb remount
adb pull /system/etc/hosts hosts_backup
adb push hosts /system/etc/hosts
Команда adb remount перемонтирует системный раздел в режим записи, но на новых прошивках она часто завершается ошибкой — это ожидаемое поведение, а не поломка. В таком случае остаётся либо модуль Magisk, либо редактирование через recovery с поддержкой монтирования разделов, что уже требует опыта и несёт риски.
Почему adb remount не работает на новых прошивках
Начиная с Android 10 многие устройства используют динамические разделы и файловую систему, смонтированную только для чтения на уровне ядра. Перемонтирование в rw-режим заблокировано, и обойти это можно только через overlay-механизм вроде Magisk-модулей или перепаковку образа super — оба варианта требуют разблокированного загрузчика.
Способ 3: модуль Magisk для подмены hosts
Наиболее безопасный для системы вариант — systemless-подмена через Magisk. Файл накладывается поверх раздела, сам раздел не изменяется, и откат выполняется простым отключением модуля. Популярные ad-blocking модули для Magisk как раз работают по этому принципу, подменяя hosts на заранее подготовленный список блокировок.
Если нужны собственные записи, можно создать простой модуль вручную: в папке модуля размещается файл system/etc/hosts с нужным содержимым, и Magisk при загрузке монтирует его поверх системного. Точную структуру модуля сверяйте с документацией вашей версии Magisk — формат может меняться между релизами.
Как изменить hosts без root: альтернативы
Без root-доступа прямое редактирование невозможно, но задачу блокировки или перенаправления доменов решают приложения, создающие локальный VPN-интерфейс. Они перехватывают DNS-запросы и фильтруют их по собственным спискам, имитируя поведение hosts. Примеры такого подхода — AdGuard для Android, Blokada, personalDNSfilter; набор функций и поддержка пользовательских правил различаются, поэтому выбирайте по своей задаче.
Ещё один вариант — Private DNS (частный DNS) в настройках сети Android: Настройки → Сеть и интернет → Частный DNS. Там можно указать DNS-сервер с фильтрацией рекламы. Это не даёт произвольных записей «домен → IP», но закрывает сценарий блокировки нежелательных доменов без root и без VPN.
| Метод | Нужен root | Произвольные записи | Риск для системы |
|---|---|---|---|
| Файловый менеджер | Да | Да | Средний |
| ADB / терминал | Да | Да | Средний |
| Модуль Magisk | Да (Magisk) | Да | Низкий, легко откатить |
| VPN-приложения | Нет | Зависит от приложения | Минимальный |
| Частный DNS | Нет | Нет | Отсутствует |
Проверка результата и возможные проблемы
После правки проверьте, что запись работает. Проще всего открыть домен в браузере — он должен вести на указанный IP или не открываться вовсе (если задан 127.0.0.1). Точнее проверка делается через терминал командой ping домен: в ответе должен фигурировать адрес из вашей строки в hosts.
Если изменения не подействовали, типичные причины такие: файл не сохранился из-за read-only раздела, нарушен формат строки (между IP и доменом должен быть пробел или табуляция), приложение использует собственный DNS-over-HTTPS в обход системы, либо запись закэширована. Браузеры с включённым Secure DNS могут игнорировать hosts — проверьте этот пункт в настройках браузера.
⚠️ Внимание: некоторые банковские приложения и сервисы оплаты отказываются работать при наличии root или модифицированного hosts. Если после правки перестало запускаться критичное приложение, откатите изменение из резервной копии и проверьте поведение снова.
Часто задаваемые вопросы
Можно ли изменить hosts на Android без root?
Напрямую — нет: файл находится в системном разделе, доступном только для чтения. Обходные варианты — VPN-приложения с фильтрацией доменов (AdGuard, Blokada) или функция «Частный DNS» в настройках сети.
Где находится файл hosts на Android?
По адресу /system/etc/hosts. Фактически это символическая ссылка на файл в разделе /system, который без root доступен только для чтения.
Почему после правки hosts сайты открываются как раньше?
Вероятные причины: DNS-кэш системы или приложения (помогает перезагрузка или авиарежим), браузер использует собственный Secure DNS в обход системы, либо файл не сохранился из-за защиты раздела от записи.
Опасно ли редактировать hosts?
Сама правка обратима, если сохранить копию исходного файла. Риски связаны с root-доступом в целом: потеря гарантии, отказ работы банковских приложений, уязвимости при неосторожной выдаче прав. Модуль Magisk снижает риск, так как не изменяет системный раздел.
Какой формат записей в файле hosts?
Каждая строка имеет вид IP-адрес домен, например 127.0.0.1 example.com. Строки, начинающиеся с символа #, считаются комментариями и игнорируются системой.