Termux

У большинства людей в ящике стола лежат два-три старых телефона Android. Треснувший экран, вздутая батарея, модель, которая больше не получает обновления безопасности. Аппаратное обеспечение внутри по-прежнему представляет собой 64-битную ARM-машину с парой гигабайт оперативной памяти, хранилище, Wi-Fi и (в этом недооцененная часть) встроенный источник бесперебойного питания, который держит все в работе при кратковременном отключении электроэнергии. Это домашний сервер. Лучшие приложения для превращения старого телефона Android в домашний сервер работают с этой реальностью: они справляются с агрессивным убийством фоновых процессов Android, они не требуют прав root на большинстве устройств, и они логируют достаточно, чтобы мы могли сказать, когда что-то бесшумно умерло. Этот список охватывает 8 приложений, к которым мы снова и снова обращаемся при настройке одного из них, от полного пользовательского Linux до однократного SSH-демона.

На что обратить внимание в приложении типа “телефон-как-сервер”

Быстрое сравнение

Приложение Лучше всего для Бесплатный план Требуется 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 в телефон с ноутбука где угодно в мире без касания маршрутизатора. Все остальное - это проект, который мы можем добавить позже.