Hosts файл на Андроид: расположение, назначение и редактирование

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

Сам файл представляет собой обычный текстовый документ, в котором доменным именам вручную сопоставляются IP-адреса. Android проверяет его до обращения к DNS-серверу, поэтому записи в hosts имеют приоритет над любыми сетевыми настройками. Именно поэтому его используют для блокировки рекламы, запрета доступа к отдельным сайтам и перенаправления доменов на локальные серверы при разработке.

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

По сути, hosts — это локальная таблица соответствия «домен → IP-адрес». Когда приложение пытается открыть сайт, система сначала ищет домен в этом файле. Если запись найдена, запрос уходит на указанный адрес, минуя DNS. Если записи нет — работает обычное разрешение имён через DNS-серверы провайдера или роутера.

На практике это даёт несколько полезных сценариев. Можно направить рекламные домены на адрес 127.0.0.1, и реклама в приложениях перестанет загружаться. Можно заблокировать доступ к конкретному сайту для всех программ сразу. Разработчики используют hosts, чтобы направить боевой домен на тестовый сервер, не меняя код приложения.

  • 🚫 Блокировка рекламных и трекинговых доменов на уровне всей системы
  • 🔒 Запрет доступа к отдельным сайтам без установки родительского контроля
  • 🛠️ Перенаправление доменов на локальные или тестовые серверы при разработке
  • ⚡ Ускорение обращения к часто используемым ресурсам за счёт обхода DNS-запросов

Где находится файл hosts на Android

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

Просмотреть содержимое можно и без root: достаточно файлового менеджера с доступом к системным каталогам или терминала. В терминальном эмуляторе файл выводится командой:

cat /system/etc/hosts

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

📊 Для чего вам нужен hosts файл на Android?
Блокировка рекламы
Запрет доступа к сайтам
Разработка и тестирование
Просто изучаю систему

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

Полноценное редактирование требует root-доступа и перемонтирования раздела /system в режим записи. Общий порядок действий выглядит так: получить права суперпользователя, открыть файл в редакторе с поддержкой root (например, через MiXplorer или терминал), внести записи и сохранить изменения.

Через терминал процедура выглядит примерно так. Сначала получаем права и перемонтируем раздел:

su

mount -o rw,remount /system

Затем открываем файл любым консольным редактором и добавляем строки в формате «IP-адрес, пробел, домен». После сохранения желательно вернуть раздел в режим чтения командой mount -o ro,remount /system. Учтите, что на некоторых современных устройствах раздел /system защищён механизмом dynamic partitions, и прямое перемонтирование может не сработать — в таком случае hosts изменяют через модули Magisk, которые подменяют файл без модификации системного раздела.

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

Выполнено: 0 / 5
⚠️ Внимание: редактирование системного раздела с root-правами может привести к отказу загрузки устройства при ошибке. Перед любыми изменениями сохраните копию оригинального файла, например командой cp /system/etc/hosts /sdcard/hosts.bak.

Изменение hosts без root-прав

Без root прямое редактирование файла невозможно, но задачу фильтрации доменов решают приложения, создающие локальный VPN-интерфейс. Они перехватывают DNS-запросы и блокируют нежелательные домены, не трогая системный файл. К таким решениям относятся, например, AdAway в режиме VPN, Blokada и personalDNSfilter.

Принцип работы прост: приложение регистрирует себя как VPN-сервис, весь трафик проходит через него, и запросы к заблокированным доменам отсекаются локально. Никакого внешнего VPN-сервера при этом не используется — данные никуда не отправляются. Минус подхода в том, что одновременно с таким приложением нельзя использовать настоящий VPN, поскольку Android разрешает только один активный VPN-интерфейс.

Формат записей и примеры

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

127.0.0.1 localhost

::1 localhost

127.0.0.1 ads.example.com

127.0.0.1 tracker.example.com

Несколько правил, которые стоит соблюдать. Один домен — одна строка; указывать несколько доменов через пробел технически допустимо, но надёжнее разносить их по отдельным строкам. Поддомены не наследуются автоматически: запись для example.com не заблокирует www.example.com, его нужно добавить отдельно. Адрес 127.0.0.1 предпочтительнее, чем 0.0.0.0, если вы хотите явно перенаправлять запросы на локальную заглушку.

ЗаписьДействиеТипичный сценарий
127.0.0.1 domain.comБлокировка доменаОтсечение рекламы и трекеров
192.168.1.10 site.localПеренаправление на локальный серверТестирование сайта в домашней сети
# комментарийСтрока игнорируетсяПометки и временное отключение записей
203.0.113.5 api.example.comЖёсткая привязка домена к IPОбход DNS при разработке
Почему блокировка через hosts не всегда срабатывает

Некоторые приложения используют собственный DNS-резолвер или протокол DNS-over-HTTPS и игнорируют системный файл. Кроме того, если домен уже закэширован, изменения могут не подействовать до очистки кэша или перезагрузки. Современные версии Android также могут кэшировать DNS-ответы на уровне системного демона.

Типичные ошибки и их решения

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

Вторая распространённая проблема — файл сохраняется, но строки не работают из-за ошибок форматирования. Проверьте, что между IP и доменом стоит пробел, в конце файла есть перевод строки, а сам файл сохранён в кодировке без BOM и с Unix-окончаниями строк. Редакторы, заточенные под Windows, иногда записывают символы CRLF, из-за чего Android может некорректно разбирать записи.

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

Третья ситуация: после обновления системы файл возвращается к исходному состоянию. Это нормально — OTA-обновления перезаписывают раздел /system, и все ручные правки пропадают. Если вы изменяли hosts через модуль Magisk, файл обычно сохраняется, но сам модуль стоит проверить на совместимость с новой версией прошивки.

Безопасность и резервные копии

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

  • 💾 Всегда сохраняйте оригинальный файл перед первым редактированием
  • 🧪 Вносите изменения небольшими порциями и проверяйте результат после каждой
  • 📥 Используйте готовые блоклисты только из доверенных источников — вредоносный hosts может перенаправлять банковские домены на фишинговые серверы
  • 🔄 После правок очищайте DNS-кэш или перезагружайте устройство

Отдельно стоит сказать о готовых файлах hosts «для блокировки всей рекламы», которые распространяются на форумах. Перед применением откройте такой файл и убедитесь, что все записи ведут на 127.0.0.1 или 0.0.0.0. Любые строки с чужими внешними IP-адресами — прямой признак попытки перенаправить ваш трафик.

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

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

Напрямую — нет: раздел /system доступен только для чтения. Альтернатива — приложения с локальным VPN-режимом (AdAway, Blokada и подобные), которые фильтруют домены без изменения системного файла.

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

По адресу /system/etc/hosts. Просмотреть его можно через терминал командой cat /system/etc/hosts даже без root-прав.

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

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

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

Да, если файл редактировался напрямую в разделе /system — OTA-обновление перезаписывает его. Изменения, внесённые через модуль Magisk, обычно сохраняются, но зависят от совместимости модуля с новой прошивкой.

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

Да, если источник не вызывает доверия. Проверяйте, что все записи указывают на 127.0.0.1 или 0.0.0.0: строки с внешними IP-адресами могут перенаправлять ваши запросы на подставные серверы.