
Автор статьи на XDA вытащил телефон со Snapdragon 845 из ящика, установил Debian внутри Termux и в итоге получил DNS-сервер, который обслуживал весь дом лучше, чем Raspberry Pi, который он заменил. Оборудование было уже избыточным: 6 ГБ оперативной памяти, хранилище UFS, встроенный Wi-Fi и батарея, которая продолжает отвечать на запросы даже при отключении питания. Общая стоимость — ноль.
Оборудование — простая часть. Выбор программного обеспечения — это то место, где большинство людей застревает, потому что почти каждое DNS-приложение на Android построено для защиты одного телефона, а не для ответов на вопросы от всего дома. Мы прошли через приложения Android, которые могут действительно разместить преобразователь в вашей сети, проверили, что именно подает каждое из них, и ранжировали лучшие приложения для запуска DNS-сервера на старом телефоне Android ниже.
Одно уточнение перед списком. Это не сравнение поставщиков DNS и не еще один обзор клиентов для изменения DNS. Если вы хотите это, у нас есть AdGuard DNS vs NextDNS vs ControlD vs Quad9 и обзор альтернатив Pi-hole. Все ниже оценивается по одному вопросу: может ли сам телефон отвечать на запросы DNS для вашего телевизора, ноутбука и планшета соседа по комнате.
На что обращать внимание в приложении DNS-сервера для Android
Шесть вещей отличают настоящий сетевой преобразователь от приложения, которое просто фильтрует телефон, на котором оно работает.
- Ответляет ли оно на запросы, поступающие с других устройств, или только из локальной песочницы приложения
- Может ли оно занять UDP-порт 53 или его отправляют на высокий порт, который маршрутизатор не может использовать
- Что происходит после перезагрузки, обновления OTA или часа Doze
- Обработка списков блокировок: локальные списки, правила для клиента или ничего
- Шифрование восходящего канала, чтобы запросы, выходящие из вашего дома, были DoH, DoT или DNSCrypt
- Требует ли он root, и что это стоит вам на телефоне, о котором вы может быть еще думаете
Первые два имеют гораздо больше значения, чем предполагают списки функций. Большинство приложений конфиденциальности на Android используют слот VPN, оборачивают трафик телефона и не имеют представления о втором устройстве. Это хорошо для повседневного телефона и бесполезно для сервера.
Ограничения, которые никто не указывает в коробке
Порт 53 — это стена, на которую натыкается большинство проектов. На Android порты ниже 1024 привилегированы, и proot (уровень совместимости, который Termux использует для запуска пользовательского режима Debian) вообще не может их привязать, поэтому он молча переотправляет привилегированные порты вверх. Без root вы получаете DNS на что-то вроде порта 5353, и большинство потребительских маршрутизаторов позволяют вам вводить только IP-адрес для DNS, без поля порта. Root, означающий разблокированный загрузчик и Magisk, — это то, что позволяет вам использовать порт 53 и преобразователь, который маршрутизатор примет. Это также аннулирует гарантию на большинстве устройств, срывает Play Integrity и нарушает приложения банков и кошельков, поэтому используйте телефон, от которого вы уже отказались, а не тот, который еще в обслуживании.
Остальная часть сантехники обыденна, но легко забыть. Дайте телефону зарезервированный адрес DHCP или статический локальный IP, потому что сервер, адрес которого перемещается, — это отключение сети дома в ожидании. Освободите преобразователь от оптимизации батареи и держите блокировку пробуждения, иначе Android приостановит его через несколько минут простоя. И не оставляйте телефон заряжаться до 100% навсегда, если можете избежать этого, поскольку горячая батарея, держащаяся при полном заряде в течение месяцев, — это то, как эти сборки заканчиваются. Множество ПЗУ и оболочек OEM предоставляют лимит заряда; если ваша этого не делает, периодическое отключение телефона от зарядного устройства лучше, чем ничего.
Быстрое сравнение
| Приложение | Лучше всего для | Подает | Требует root | Цена |
|---|---|---|---|---|
| Termux | Настоящий Pi-hole или AdGuard Home на телефоне | Вся LAN | Для порта 53 | Бесплатно |
| personalDNSfilter | Сетевой DNS без терминала | Вся LAN | Для порта 53 | Бесплатно |
| Servers Ultimate | Настройка на основе форм, без оболочки | Вся LAN | Для порта 53 | Пробная версия, затем платная |
| RethinkDNS | Сам телефон и указание клиентов на ваш сервер | Одно устройство | Нет | Бесплатно |
| InviZible Pro | Устройства через точку доступа телефона | Клиенты точки доступа | Для хороших частей | Бесплатная версия доступна |
| Nebulo | Легкое шифрование восходящего канала | Одно устройство | Нет | Бесплатно |
| AdAway | Блокировка на серверном телефоне без слота VPN | Одно устройство | Да для режима hosts | Бесплатно |
| Termux:Boot | Выживание после перезагрузок | Поддерживающая роль | Нет | Бесплатно |
Приложения
1. Termux, лучше всего для настоящего сетевого преобразователя
Termux — это единственный вариант в этом списке, который дает вам то же программное обеспечение, которое запускает Raspberry Pi. Установите proot-distro, переходите в среду пользователя Debian, и AdGuard Home, Pi-hole, Unbound или dnsmasq устанавливаются так же, как везде. AdGuard Home — это более мягкий из двух крупных: один двоичный файл, веб-панель управления на порту 3000, списки блокировок и правила для каждого клиента включены. Pi-hole тоже работает, хотя FTL нужно запустить на переднем плане с pihole-FTL -f внутри сеанса tmux, потому что proot убивает процессы, которые демонизируются и отделяются.
Где это не хватает: порт 53, как обсуждалось выше. Без root вы подаете на высокий порт, который большинство маршрутизаторов не примут, что превращает сетевой преобразователь в преобразователь для отдельного устройства. Сборка из Google Play также является отдельно поддерживаемой веткой с изменениями, откатанными из последних выпусков, поэтому для сервера вам нужна сборка F-Droid или GitHub.
Цена: Бесплатно и с открытым исходным кодом (GPLv3).
Платформы: Android.
Загрузка: Termux на Google Play · F-Droid · GitHub
Итоговая оценка: Выберите этот путь, если вам нужны правила блокировки для каждого клиента и панель управления, и у вас есть рутированный телефон плюс вечер на потратиться.
2. personalDNSfilter, лучший сетевой DNS-сервер без терминала
personalDNSfilter — это небольшой прокси DNS на Java, который подключается к разрешению имен и возвращает адрес обратной петли для всего в своем списке блокировок. Что делает его необычным, так это то, что он был разработан для запуска либо локально на одном устройстве, либо централизованно как DNS-сервер сети, что почти ни одно другое DNS-приложение на Android не может сказать. Фильтрация происходит полностью на телефоне, он работает с любым восходящим преобразователем, на который вы его указываете, и локальный режим работает без root.
Где это не хватает: конфигурация выглядит как редактирование файла конфигурации, а не касание переключателей, и интерфейс — это список настроек плюс окно журнала. Занятие порта 53 все еще зависит от root, поэтому на стандартном телефоне вы снова на высоком порту.
Цена: Бесплатно и с открытым исходным кодом.
Платформы: Android.
Загрузка: personalDNSfilter на Google Play · F-Droid
Итоговая оценка: Лучший выбор, если вы хотите, чтобы телефон подавал DNS в сеть, но не заинтересованы в изучении Termux.
3. Servers Ultimate, лучший инструмент для быстрой настройки сервера
Servers Ultimate запускает более 60 типов серверов на Android, и DNS-сервер и сервер dnsmasq находятся среди них. Все настраивается через формы, поэтому нет оболочки, нет менеджера пакетов и нет уровня proot между вами и сервисом. Для телефона в ящике, который также будет запускать файловый ресурс или конечную точку FTP, одно приложение охватывает все это.
Где это не хватает: бесплатная версия ограничивает вас двумя серверами и перестает работать после семидневной пробной версии, поэтому требуется платная разблокировка для всего постоянного. Это закрытый исходный код, и экраны параметров вмещают много полей в очень мало места. Порт 53 остается привилегией только root и здесь.
Цена: Бесплатная пробная версия (два сервера, семь дней), затем однократная платная разблокировка.
Платформы: Android.
Загрузка: Servers Ultimate на Google Play
Итоговая оценка: Стоит платить, если командная строка — это то, что вас останавливает, и пропустить, если вы все равно собирались установить Termux.
4. RethinkDNS, лучший преобразователь для телефона и клиентов вокруг него
RethinkDNS — это DNS и приложение брандмауэра для запуска на самом телефоне, и оно играет вторую роль, которую легко пропустить: оно поддерживает простой тип преобразователя прокси DNS, где вы вводите IP-адрес и порт. Это именно то, как вы указываете другому устройству Android на серверный телефон, включая случаи, когда ваш сервер застрял на высоком порту, который маршрутизатор отказывается выдавать. Он также выполняет DoH, DoT, DNSCrypt и ODoH вверх, поставляет более 190 локальных списков блокировок и включает брандмауэр для каждого приложения с отслеживанием соединений.
Где это не хватает: он не отвечает на запросы других устройств. Rethink защищает телефон, на котором он работает, и делает это через слот VPN, что означает, что серверный телефон не может одновременно использовать этот слот для чего-то еще.
Цена: Бесплатно и с открытым исходным кодом, без объявлений.
Платформы: Android 6 и новее.
Загрузка: Rethink на Google Play · F-Droid · GitHub
Итоговая оценка: Установите его на телефоны, которые вы хотите указать на свой новый преобразователь, а не на сам преобразователь.
5. InviZible Pro, лучше всего для обслуживания устройств через точку доступа телефона
InviZible Pro объединяет DNSCrypt, Tor и I2P, и это одно из немногих приложений Android с реальной поддержкой модема: включите опции модема, запустите DNSCrypt, и устройства, подключенные к точке доступа телефона, разрешают это через нее. В режиме root с включенной опцией Fix TTL он также будет показывать живой журнал DNS-запросов для клиентов модема, что действительно полезно для поимки смарт-ТВ, который сообщает домой каждые тридцать секунд.
Где это не хватает: клиенты точки доступа — это не то же самое, что ваша существующая сеть Wi-Fi, поэтому это охватывает устройства, которые вы сознательно подключаете к телефону, а не все, что уже есть на маршрутизаторе. Root разблокирует большую часть того, что делает это интересным, и запуск точки доступа плюс Tor держит телефон в тепле и батарею занятой.
Цена: Открытый исходный код, с бесплатной сборкой на F-Droid.
Платформы: Android.
Итоговая оценка: Правильный ответ, когда «сеть», которую вы хотите охватить, — это несколько устройств, которые вы можете подключить к телефону напрямую, например набор для путешествий или комната для гостей.
6. Nebulo, лучшее легкое шифрование восходящего канала
Nebulo — это клиент DoH, DoT и DoH3 от Frostnerd без объявлений, без отслеживания и со славой оставаться вне статистики батареи. Его значение здесь — экспериментальный режим без VPN, который запускает локальный DNS-сервер вместо обычного фиктивного VPN, что оставляет слот VPN свободным на телефоне, уже занятом другими задачами.
Где это не хватает: режим без VPN является экспериментальным, и он ожидает, что сторонее приложение будет пересылать запросы ему, а не захватывать их для вас. Nebulo также находится не в основном репозитории F-Droid, поэтому установка вне Google Play означает добавление собственного репозитория разработчика.
Цена: Бесплатно.
Платформы: Android 6 и новее.
Загрузка: Nebulo на Google Play · Зеркало GitHub
Итоговая оценка: Хороший зашифрованный восходящий канал для клиентских телефонов в доме и нишевой вариант на серверном телефоне, когда слот VPN уже занят.
7. AdAway, лучший блокер для самого серверного телефона
AdAway идет по другому маршруту к тому же результату: в режиме root он переписывает системный файл hosts, поэтому блокировка применяется системно без занятия слота VPN. На телефоне, который запускает Termux, точку доступа или что-то еще, что хочет этот слот, эта разница — это все. Режим VPN без root также доступен, и приложение поддерживается на F-Droid более десяти лет.
Где это не хватает: блокировка в файле hosts охватывает только телефон, на котором он работает, поэтому это не вносит вклад в сетевую сторону проекта. Режим root означает разблокированный загрузчик, и на большинстве телефонов это означает конец гарантии, нарушает проверки Play Integrity в приложениях банков и кошельков и возлагает обновления безопасности поставщика вам вместо производителя. AdAway также не на Google Play.
Цена: Бесплатно и с открытым исходным кодом.
Платформы: Android 8 и новее.
Итоговая оценка: Добавьте его, когда телефон уже рутирован, чтобы сервер содержал себя в чистоте без кражи слота VPN из чего-то еще.
8. Termux:Boot, разница между сервером и демонстрацией выходного дня
Termux:Boot — это небольшой надстройка, которая запускает скрипты из ~/.termux/boot/ при запуске телефона. Вот все, что он делает, и это причина, по которой сборка XDA продолжала работать: после отключения питания, перезагрузки OTA или сбоя преобразователь восстанавливается самостоятельно вместо ожидания, пока вы заметите, что интернет сломан и SSH. Объедините его с уведомлением о блокировке пробуждения Termux и исключением оптимизации батареи для Termux.
Где это не хватает: оно только обрабатывает запуск. Если Android решит убить процесс два часа спустя, блокировка пробуждения и исключение оптимизации — это то, что вас спасает, а не это. Агрессивные кожи OEM от Xiaomi, Samsung и Oppo также хотят, чтобы их собственное разрешение на автозагрузку было предоставлено перед запуском скриптов загрузки.
Цена: Бесплатно и с открытым исходным кодом.
Платформы: Android, наряду с установкой Termux из того же источника.
Итоговая оценка: Установите его в первые десять минут, а не после третьего раза, когда дом теряет DNS.
Как выбрать правильный
Если вам нужен полный опыт, правила для каждого клиента, панель управления, графики запросов и возможность использовать Unbound позже, используйте Termux с AdGuard Home внутри proot Debian и рутируйте телефон, чтобы он мог содержать порт 53.
Если терминал — это препятствие, но вы все еще хотите охватить всю сеть, используйте personalDNSfilter. Это единственное приложение без оболочки здесь, которое было действительно разработано для ответа на другие устройства.
Если вы предпочитаете платить несколько евро, чем настраивать что-то вручную, Servers Ultimate запускает DNS или сервер dnsmasq из формы и будет запускать другие ваши домашние сервер и прочее тоже.
Если телефон будет маршрутизатором для путешествий или ящиком для комнаты гостей, InviZible Pro через точку доступа проще, чем любой из вышеперечисленных, и не требует никаких изменений маршрутизатора.
Если вы попробовали маршрут Termux и отказались на порту 53, установите RethinkDNS на свои телефоны и укажите его тип преобразователя прокси DNS на IP и высокий порт сервера. Маршрутизатор никогда не должен узнать.
И какой бы сервер вы ни выбрали, добавьте Termux:Boot, зарезервированный адрес DHCP и исключение оптимизации батареи, прежде чем вы закончите проект.
Часто задаваемые вопросы
Может ли старый телефон Android действительно заменить Raspberry Pi как DNS-сервер?
Для DNS да. Телефон с 2018 года имеет больше оперативной памяти и более быстрое хранилище, чем большинство моделей Pi, плюс Wi-Fi и встроенную батарею, которая действует как небольшой ИБП при отключении питания. Компромисс — усилие при настройке: Android не построен для работы в качестве сервера, поэтому правильная настройка скриптов загрузки, привязки портов и выполнения в фоне занимает больше времени, чем прошивка карты SD.
Нужен ли вам root для запуска DNS-сервера на телефоне Android?
Не для запуска, но эффективно да для использования маршрутизатором. Android резервирует порты ниже 1024, и proot не может привязаться вообще, поэтому нерутированный телефон подает DNS на высокий порт, который большинство потребительских маршрутизаторов не может быть указано использовать. Root получает вам порт 53, за счет гарантии, Play Integrity и обновлений безопасности поставщика.
Какое приложение позволяет телефону Android подавать DNS другим устройствам?
Termux (запуск AdGuard Home, Pi-hole, Unbound или dnsmasq), personalDNSfilter в его сетевом режиме и Servers Ultimate все отвечают на запросы от других машин. InviZible Pro охватывает устройства, подключенные к точке доступа телефона. Rethink, Nebulo и AdAway защищают только телефон, на котором они работают.
Убьет ли оптимизация батареи Android DNS-сервер?
Это будет если вы это позволите. Освободите приложение от оптимизации батареи в настройках Android, держите блокировку пробуждения Termux из его уведомления и предоставьте любое дополнительное разрешение на автозагрузку, которое требует оболочка OEM. Без них преобразователь становится тихим при Doze и каждое устройство в доме теряет разрешение имени одновременно.
Можете ли вы запустить Pi-hole на Android?
Вы можете, через Termux и proot-distro с контейнером Debian. Единственный неочевидный шаг — запуск FTL на переднем плане с pihole-FTL -f внутри tmux, потому что proot прекращает процессы, которые демонизируются и отделяются от оболочки.
Безопасно ли оставлять телефон постоянно подключенным?
Это общепринятая практика, но тепло и батарея, удерживаемая при полном заряде в течение месяцев, в конце концов вздует элемент кармана. Используйте функцию ПЗУ или OEM, которая ограничивает зарядку ниже 100%, если она доступна, держите телефон где-то проветриваемым и вне ящика и проверяйте заднюю панель каждые несколько месяцев на предмет признаков вздутия.