Как поменять hosts на Android: полное руководство

Файл 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 может нарушить работу приложений и синхронизации аккаунтов. Перед правкой обязательно сохраните копию исходного файла — это займёт секунду, а откат позволит вернуть всё за минуту.
📊 Есть ли на вашем Android-устройстве root-доступ?
Да, через Magisk
Да, другой способ
Нет, и не планирую
Нет, но хочу получить

Способ 1: правка через файловый менеджер с root

Это самый наглядный метод для устройств, где системный раздел доступен на запись. Подойдёт любой файловый менеджер с поддержкой root, например MiXplorer или Solid Explorer с root-плагином — конкретный набор функций зависит от версии приложения, поэтому проверяйте наличие режима «root explorer» в настройках.

Порядок действий:

  • 📂 откройте файловый менеджер и включите в настройках режим root-доступа;
  • 📄 перейдите в /system/etc/ и найдите файл hosts;
  • 💾 скопируйте его в память телефона как резервную копию;
  • ✏️ откройте файл встроенным текстовым редактором и добавьте нужные строки в формате IP-адрес домен;
  • ✅ сохраните файл и убедитесь, что права доступа остались 644 (rw-r--r--).

☑️ Правка hosts через файловый менеджер

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

Если при сохранении появляется ошибка «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. Строки, начинающиеся с символа #, считаются комментариями и игнорируются системой.