У большинства людей в ящике стола лежат два-три старых телефона Android. Треснувший экран, вздутая батарея, модель, которая больше не получает обновления безопасности. Аппаратное обеспечение внутри по-прежнему представляет собой 64-битную ARM-машину с парой гигабайт оперативной памяти, хранилище, Wi-Fi и (в этом недооцененная часть) встроенный источник бесперебойного питания, который держит все в работе при кратковременном отключении электроэнергии. Это домашний сервер. Лучшие приложения для превращения старого телефона Android в домашний сервер работают с этой реальностью: они справляются с агрессивным убийством фоновых процессов Android, они не требуют прав root на большинстве устройств, и они логируют достаточно, чтобы мы могли сказать, когда что-то бесшумно умерло. Этот список охватывает 8 приложений, к которым мы снова и снова обращаемся при настройке одного из них, от полного пользовательского Linux до однократного SSH-демона.
На что обратить внимание в приложении типа “телефон-как-сервер”
- Обработка фоновой сохранности. Android убьет все, что считает неактивным. Хорошие серверные приложения запускают сервис переднего плана с липкой уведомлением, запрашивают исключение оптимизации батареи и переполучают блокировки пробуждения при перезагрузке.
- Не требуется root. Рутирование старого телефона неплохо для любительской сборки, но приложения, которые мы рекомендуем, должны работать на стандартном Android, чтобы запасной Pixel или Samsung не был заблокирован как предварительное условие.
- Доступность в локальной сети и WAN. Приложение должно привязываться к
0.0.0.0(не только localhost), и оно должно быть честным о том, как работает удаленный доступ: перенаправление портов, UPnP или оверлейная сеть, как Tailscale. - Безопасный удаленный доступ. Открытый ключ SSH, TLS или частная сетка. Аутентификация только по паролю на телефоне, который живет в домашней Wi-Fi, - плохой стандарт.
- Низкое энергопотребление батареи. Телефон, подключенный к сети 24/7 с неконтролируемым сервисом, будет готовиться к батарее за несколько месяцев. Ищите приложения, которые неактивны чисто и не вращают CPU на пусто.
- Здравая логика. Когда сервис перестает отвечать в 3 часа ночи, логи должны сказать, почему. Бесшумный отказ - это режим отказа каждого плохого фонового приложения Android.
Быстрое сравнение
| Приложение | Лучше всего для | Бесплатный план | Требуется root | Влияние на батарею |
|---|---|---|---|---|
| Termux | Полный пользовательский Linux (ssh, nginx, syncthing) | Да | Нет | Низкое-среднее |
| Nextcloud | Клиент личного облака и конечная точка общего доступа | Да | Нет | Низкое |
| KDE Connect | Соединение телефона с рабочим столом через LAN | Да | Нет | Очень низкое |
| PortMapper | Открытие портов маршрутизатора через UPnP | Да | Нет | Очень низкое |
| Tailscale | Конфигурация нулевого мешинга VPN в телефон | Да (личный) | Нет | Низкое |
| Servers Ultimate | Стек протоколов наследия (FTP, SMB, DNS, DLNA) | Freemium | Нет | Среднее |
| Perpetual Wake Lock | Предотвращение doze от убийства долгоживущих сервисов | Да | Нет | Среднее (по дизайну) |
| SimpleSSHD | Автономный SSH с открытым ключом аутентификации | Да | Нет | Очень низкое |
Приложения
1. Termux
Termux - это полный пользовательский Linux, упакованный как приложение Android. Он поставляется со своим собственным менеджером pkg (интерфейс переднего плана в стиле Debian для куратора), и внутри мы можем pkg install openssh nginx code-server syncthing python nodejs, затем запустить каждый как обычный демон. Это приложение, которое превращает “старый телефон” в “сервер”, и это то, вокруг чего вращается весь остальной список.
Где он не справляется: Play Store сборка заморожена на старой версии из-за конфликтов политики уровня API, поэтому пакеты там устарели. Установите из F-Droid или выпусков GitHub вместо этого. Termux также не может запускать сервисы в фоновом режиме надежно без блокировки пробуждения, поэтому Perpetual Wake Lock находится в этом списке.
Цена: бесплатно, открытый исходный код. Платформы: Android Скачивание: Google Play (заморожено, установите сборку F-Droid вместо этого), F-Droid Суть: если мы установим одно приложение на телефон, это будет оно. Все остальное - это удобство, наложенное на вершину.
2. Nextcloud
Официальный клиент Nextcloud делает две полезные вещи на телефоне сервера: автоматически загружает фотопленку телефона на экземпляр Nextcloud, запущенный где-то еще, и (с модулем синхронизации папок) он раскрывает локальные папки, которые сервер Nextcloud может извлечь. В сочетании с экземпляром Nextcloud, работающим внутри Termux, телефон становится и хозяином, и одним из своих собственных клиентов.
Где он не справляется: это приложение, ориентированное на клиент. Запуск сервера PHP Nextcloud происходит в Termux, а не в APK Nextcloud.
Цена: бесплатно, открытый исходный код. Платформы: Android Скачивание: Google Play, F-Droid Суть: кусок, который делает телефон похожим на личное облако, а не на Linux бокс, который случается находиться под диваном.
3. KDE Connect
KDE Connect - это LAN-мост между телефоном и рабочим столом. На телефоне сервера это самый быстрый способ отправить файлы, зеркалировать буфер обмена, запустить удаленные команды и получить уведомления с телефона на ноутбук через комнату. Поскольку он работает через локальную сеть с парными открытыми ключами, нет ничего, что нужно раскрывать в Интернет.
Где он не справляется: ему нужны оба устройства в одной подсети, и это не заменитель SSH или надлежащего инструмента удаленного управления.
Цена: бесплатно, открытый исходный код. Платформы: Android Скачивание: Google Play, F-Droid Суть: клей на столе между телефоном сервера и ноутбуком, который им управляет.
4. PortMapper
PortMapper просит домашний маршрутизатор (через UPnP) открыть порт и перенаправить его на телефон. Это то, как мы раскрываем услугу SSH или веб без входа в пользовательский интерфейс администратора маршрутизатора, и это отменяет себя при перезагрузке телефона, поэтому ничто не остается открытым случайно.
Где он не справляется: маршрутизатор должен говорить с ним UPnP с включенным, что многие маршрутизаторы, поставляемые провайдером, поставляют отключенные. Мы в целом предпочитаем путь Tailscale по этой причине, но PortMapper - это правильный ответ, когда общественная конечная точка действительно необходима.
Цена: бесплатно. Платформы: Android Скачивание: Google Play Суть: быстрое исправление для раскрытия порта в WAN, когда Tailscale не является опцией.
5. Tailscale
Tailscale бросает телефон на приватную сетку WireGuard с нашими другими устройствами. Без перенаправления портов, без динамического DNS, без поддевания брандмауэра. Телефон получает стабильный адрес 100.x, и каждое устройство, подписанное в ту же tailnet, может достичь его, как если бы они были в той же локальной сети.
Где он не справляется: бесплатный личный уровень щедрый, но ограничивается 100 устройствами и 3 пользователями, что неплохо для домашнего хозяйства, но не для небольшой команды. Это также зависит от доступности координационных серверов Tailscale.
Цена: бесплатный личный уровень, платные командные планы. Платформы: Android Скачивание: Google Play Суть: самый безопасный способ достичь телефона извне дома, и тот, который мы устанавливаем первым.
6. Servers Ultimate
Servers Ultimate - это швейцарский армейский нож, который хозяйствует с десятками протоколов (FTP, SFTP, SMB, DNS, DHCP, DLNA, Telnet, syslog и многое другое) из одного интерфейса с вкладками. Если целью является сделать телефон наследственной файловой базой для смарт-ТВ или принтера, который говорит только на протоколах эпохи 2005 года, это быстрый путь.
Где он не справляется: бесплатный уровень ограничивает количество серверов, которые могут одновременно запускаться, и показывает объявления, а исходный код закрыт, что мы взвешиваем против альтернатив на основе Termux.
Цена: freemium, Pro разблокировка за однократный сбор. Платформы: Android Скачивание: Google Play Суть: практичный выбор, когда целью является “сделать телефон говорить SMB на мой телевизор”, и мы не хотим компилировать ничего.
7. Perpetual Wake Lock
Режим doze Android приостановит наши тщательно настроенные демоны Termux в тот момент, когда экран был выключен в течение определенного времени. Perpetual Wake Lock держит частичную блокировку пробуждения, поэтому CPU продолжает обслуживать фоновую работу. Это тупой инструмент, и в этом суть.
Где он не справляется: он намеренно поражает управление питанием ОС, поэтому батарея будет разряжаться быстрее и работать горячее. Используйте только на телефоне, который живет на зарядном устройстве.
Цена: бесплатно. Платформы: Android Скачивание: Google Play (доступность может варьироваться в зависимости от региона) Суть: недостающий кусок, который делает сервисы Termux действительно оставаться между перезагрузками.
8. SimpleSSHD
SimpleSSHD - это автономный SSH сервер в одном APK. Он поддерживает открытый ключ, chroot в выбранный каталог, и работает как сервис переднего плана с липким уведомлением. Если все, что мы хотим, это ssh phone.local с ноутбука, это меньше и проще, чем запуск sshd внутри Termux.
Где он не справляется: это голый SSH сервер, а не окружение оболочки. Когда мы входим, мы получаем ash Android, а не bash, и ничего из дерева пакетов Termux.
Цена: бесплатно, открытый исходный код. Платформы: Android Скачивание: Google Play, F-Droid Суть: самый маленький, здравый способ получить приглашение SSH на запасном телефоне.
Как выбрать правильный
Если целью является личное облако с резервной копией фото и синхронизацией файлов, установите Termux, запустите Nextcloud или пару Syncthing внутри него, и добавьте клиент Nextcloud на вершину. Если целью является точка входа VPN в домашнюю сеть, установите Tailscale первым и беспокойтесь о сервисах после этого, потому что Tailscale делает остаток этого списка доступным отовсюду без открытия единого порта. Если целью является наследственная файловая база для смарт-ТВ, сетевого принтера или старой камеры, которая говорит только SMB или FTP, Servers Ultimate - это кратчайший путь от нуля к работающей базе. Если нам нужен только доступ к оболочке на запасном телефоне (скажем, запустить скрипт в стиле cron), SimpleSSHD один будет выполнять работу и использовать почти никакой батареи. И в каждом случае добавьте Perpetual Wake Lock, если что-либо в стеке должно оставаться включенным между периодами выключения экрана, в противном случае doze бесшумно убьет его и мы не заметим до следующего раза, когда мы попытаемся подключиться.
FAQ
Нужно ли рутировать телефон? Нет. Каждое приложение в этом списке работает на стандартном Android. Root разблокирует несколько дополнительных (привязка к портам ниже 1024, более плотный контроль iptables), но ничего в этом списке не требует его.
Будет ли батарея держать, если она заряжается 24/7? Литиевые батареи разлагаются быстрее при 100% зарядке и повышенных температурах, что является ровно тем состоянием, в котором живет подключенный телефон сервера. Ожидайте заметной потери емкости в течение года. Некоторые телефоны (недавние Pixels, некоторые Samsungs) имеют настройку ограничения заряда, которая ограничена 80%, что много помогает. Если телефон действительно пенсионер, это приемлемая торговля.
Что произойдет, когда Android убьет мое фоновое приложение?
Сервис перестает отвечать, и ничто не говорит нам. В этом суть Perpetual Wake Lock, запуска сервисов под Termux с termux-wake-lock, и использования приложений, которые регистрируют надлежащий сервис переднего плана. Также отключите оптимизацию батареи для каждого серверного приложения в Параметры, или Android решит, что оно лучше знает.
Это безопаснее, чем Raspberry Pi? Различная модель угрозы. Pi работает на полном дистрибутиве Linux, который мы можем исправить в собственном расписании; телефон работает на том, что ядро производитель последний отправил, что для старого устройства, вероятно, не получает обновления безопасности. С другой стороны, телефон имеет батарею и модем LTE, поэтому он пережил отключения, которые Pi нет. Для домашней локальной сети использования позади Tailscale, телефон хорошо. Для услуги, выставленной в общественный Интернет, мы предпочли бы Pi.
Какой лучший комбо для полного новичка?
Termux плюс SimpleSSHD плюс Tailscale. Установите все три, зарегистрируйте телефон в tailnet, установите ключ SSH в SimpleSSHD, и теперь мы можем ssh в телефон с ноутбука где угодно в мире без касания маршрутизатора. Все остальное - это проект, который мы можем добавить позже.