Файл hosts на Android: расположение, редактирование и практическое применение

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

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

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

Файл hosts — это локальная таблица соответствия доменных имён и IP-адресов. Когда приложение обращается к сайту, система сначала проверяет hosts: если домен там прописан, используется указанный адрес, а запрос к DNS-серверу не выполняется. Такой механизм достался Android от ядра Linux и работает на уровне всей системы.

На практике это даёт несколько применений. Запись вида 127.0.0.1 example.com перенаправляет домен на локальный адрес, и подключение фактически обрывается — так блокируют рекламные и трекинговые домены. Обратная задача тоже решается: разработчику можно указать тестовый IP для домена, чтобы приложение обращалось к staging-серверу вместо боевого.

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

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

Стандартное расположение — /system/etc/hosts. Это символическая ссылка, которая в актуальных версиях Android ведёт на /apex/com.android.tzdata/etc/hosts или на файл внутри системного раздела — путь зависит от версии ОС. Для пользователя это не имеет практического значения: обращаться нужно именно к /system/etc/hosts.

Просмотреть содержимое можно без root-прав. Откройте любой файловый менеджер с доступом к корневой файловой системе или терминал и выполните команду:

cat /system/etc/hosts

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

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

Полноценное редактирование требует root-прав, потому что системный раздел защищён от записи. Даже с root современные версии Android используют динамические разделы, и прямая запись в /system может быть невозможна — поэтому наиболее корректный путь сегодня это модуль Magisk с функцией systemless hosts, которая подменяет файл без изменения самого раздела.

Общий порядок действий выглядит так:

  1. Убедитесь, что root-доступ получен и работает (проверьте через приложение-менеджер root).
  2. Если установлен Magisk, включите опцию Systemless hosts в его настройках — это создаст редактируемую копию файла.
  3. Откройте /system/etc/hosts в текстовом редакторе с поддержкой root (или через терминал) и добавьте записи в формате IP-адрес домен, каждая — с новой строки.
  4. Сохраните файл и перезагрузите устройство либо очистите DNS-кэш, чтобы изменения применились.

☑️ Перед редактированием hosts

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

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

127.0.0.1 ads.example.com

127.0.0.1 tracker.example.com

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

Как изменить hosts без root: рабочие альтернативы

Без root прямое редактирование невозможно, но аналогичный результат достигается другими средствами. Самый распространённый способ — приложения, создающие локальный VPN-интерфейс: трафик проходит через приложение, и оно фильтрует домены по списку, имитируя поведение hosts. Примеры такого подхода — AdGuard, Blokada, personalDNSfilter; они позволяют загружать готовые hosts-списки блокировки.

Второй вариант — функция Private DNS (Частный DNS) в настройках сети Android. Она не редактирует hosts, но позволяет указать DNS-сервер с фильтрацией рекламы. Путь к настройке обычно такой: Настройки → Сеть и интернет → Частный DNS, хотя точное расположение пункта зависит от оболочки производителя.

СпособRootОхватОсобенности
Правка /system/etc/hostsТребуетсяВся системаМаксимальный контроль, риск ошибок
Magisk Systemless hostsТребуетсяВся системаНе трогает системный раздел
VPN-блокировщикиНе нуженВесь трафикЗанимает слот VPN, расход батареи
Private DNSНе нуженВся системаТолько фильтрация через DNS-провайдера
📊 Какой способ блокировки доменов на Android вы используете?
Правлю hosts с root
VPN-блокировщик (AdGuard, Blokada)
Private DNS
Пока никак, только изучаю

Типичные ошибки и проблемы после правки hosts

Изменения не применяются? Чаще всего виноват DNS-кэш. Android и отдельные приложения (в первую очередь браузеры) кэшируют результаты DNS-запросов, поэтому старый адрес продолжает использоваться. Помогает перезагрузка устройства, очистка кэша браузера или переключение в авиарежим и обратно.

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

  • Опечатка в формате записи — между IP и доменом должен быть пробел или табуляция, без лишних символов;
  • Неверная кодировка — файл должен быть в UTF-8 без BOM, с Unix-переносами строк (LF);
  • Блокировка нужного домена — готовые списки иногда включают домены, необходимые для работы сервисов;
  • Изменения затёрты обновлением — OTA-обновление системы может вернуть исходный файл.
⚠️ Внимание: массовые готовые hosts-списки могут содержать тысячи записей, и среди них встречаются домены, нужные для работы push-уведомлений, обновлений и авторизации приложений. После применения такого списка проверьте работу критичных программ.
Почему некоторые приложения обходят файл hosts

Часть приложений встраивает собственный DNS-клиент или использует DNS-over-HTTPS (DoH) напрямую к своему серверу. В этом случае системный резолвер, читающий hosts, вообще не вызывается. Особенно это характерно для браузеров с включённым защищённым DNS и приложений с собственной сетевой библиотекой. Для их фильтрации нужен VPN-блокировщик, перехватывающий трафик на уровне пакетов.

Безопасность и откат изменений

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

cp /system/etc/hosts /sdcard/hosts.backup

Для отката верните копию на место или, если использовался Magisk, просто отключите модуль Systemless hosts и перезагрузитесь — системный раздел при этом остаётся нетронутым, что и является главным преимуществом этого метода. Systemless-подход позволяет полностью откатить изменения простым отключением модуля, тогда как прямая запись в раздел может потребовать перепрошивки при повреждении файла.

Отдельно учитывайте, что root-доступ сам по себе влияет на работу банковских приложений и сервисов с проверкой целостности устройства. Если hosts нужен вам только для блокировки рекламы, VPN-решение без root часто оказывается более рациональным выбором.

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

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

Нет, системный раздел смонтирован в режиме «только чтение», и без root-прав запись в /system/etc/hosts невозможна. Используйте альтернативы: VPN-блокировщики рекламы или функцию Private DNS с фильтрующим сервером.

Где именно лежит файл hosts на Android?

По адресу /system/etc/hosts. В новых версиях Android это может быть символическая ссылка на файл внутри APEX-модуля, но обращаться всегда нужно по стандартному пути.

Почему после правки hosts изменения не работают?

Возможные причины: DNS-кэш системы или браузера (помогает перезагрузка), приложение использует собственный DNS-резолвер или DoH, файл сохранён в неверной кодировке или с ошибками в формате записей.

Удалится ли изменённый hosts при обновлении системы?

Да, OTA-обновление может перезаписать системный раздел и вернуть исходный файл, если правка выполнялась напрямую. При использовании Magisk Systemless hosts изменения сохраняются, так как системный раздел не модифицируется.

Опасно ли использовать готовые hosts-списки из интернета?

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