Файл 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 с root-правами
Полноценное редактирование требует root-доступа и перемонтирования раздела /system в режим записи. Общий порядок действий выглядит так: получить права суперпользователя, открыть файл в редакторе с поддержкой root (например, через MiXplorer или терминал), внести записи и сохранить изменения.
Через терминал процедура выглядит примерно так. Сначала получаем права и перемонтируем раздел:
su
mount -o rw,remount /system
Затем открываем файл любым консольным редактором и добавляем строки в формате «IP-адрес, пробел, домен». После сохранения желательно вернуть раздел в режим чтения командой mount -o ro,remount /system. Учтите, что на некоторых современных устройствах раздел /system защищён механизмом dynamic partitions, и прямое перемонтирование может не сработать — в таком случае hosts изменяют через модули Magisk, которые подменяют файл без модификации системного раздела.
☑️ Подготовка к редактированию hosts
⚠️ Внимание: редактирование системного раздела с 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-адресами могут перенаправлять ваши запросы на подставные серверы.