Как запустить веб/SSH/БД‑сервер на Android: быстрый план

Можно быстро превратить Android‑устройство в локальный или публичный сервер: для гибкости используйте Termux (nginx/php/mysql/ssh), для простоты — KSWEB или Servers Ultimate; для публичного доступа — туннель (Cloudflare/ngrok) или проброс портов. Ниже — краткие шаги и готовые команды.

Что установить и когда выбирать

  • Termux — для разработки и автоматизации, даёт пакетный менеджер и доступ к привычным Linux‑командам.
  • KSWEB — GUI «всё в одном», удобно для быстрых демонстраций.
  • Servers Ultimate — много типов сервисов (FTP, DLNA и др.), когда нужен набор разных серверов.
  • Cloudflare Tunnel/ngrok — если нужен публичный доступ без настройки роутера/если есть CGNAT.

Если нужен только локальный тест — достаточно встроенного PHP‑сервера (в Termux/или KSWEB) и папки в /storage/shared/www.

Быстрый старт в Termux (рекомендуется для гибкости)

  1. Установите Termux (F‑Droid/GitHub сборка). Запустите и обновите пакеты:
pkg update && pkg upgrade -y
termux-setup-storage
  1. Установите серверные пакеты:
pkg install nginx php php-fpm mariadb openssh nano -y
  1. Быстрая проверка (встроенный PHP):
mkdir -p ~/storage/shared/www
echo "<?php phpinfo();" > ~/storage/shared/www/index.php
php -S 0.0.0.0:8080 -t ~/storage/shared/www
# или запустите php-fpm + nginx после конфигурации
  1. Минимальная конфигурация nginx: укажите root на ~/storage/shared/www и проксируйте .php в php-fpm (unix‑сокет или порт). Затем:
php-fpm
nginx
  1. MariaDB — инициализация и запуск (варианты зависят от сборки):
mysqld_install_db
mysqld_safe --datadir=$PREFIX/var/lib/mysql &
mysql -u root
  1. Автозапуск: используйте termux‑services или termux‑boot скрипты для старта демонов при запуске Termux.

На Android фоновые процессы могут усыпляться. Отключите оптимизацию батареи для Termux/приложения и подключите постоянное питание для стабильной работы.

KSWEB / Servers Ultimate — GUI‑вариант

  1. Установите приложение и дайте разрешения на хранилище.
  2. Укажите папку проекта (обычно /sdcard/ksweb/www) и порт (например 8080).
  3. Включите PHP и MySQL через панель и запустите сервисы. Для доступа извне используйте туннель или проброс портов роутера.

Как открыть доступ в LAN и в Интернет

  • LAN: узнайте IP телефона (ip addr show wlan0 или ifconfig) и откройте http://<LAN_IP>:<порт>. Убедитесь, что сервис слушает 0.0.0.0, а не 127.0.0.1.
  • Интернет: проще и безопаснее — туннель (Cloudflare Tunnel/ngrok). Альтернатива — проброс портов на роутере + DDNS, работает только при наличии публичного IPv4.

Пример запуска Cloudflare Tunnel в Termux (упрощённо):

# получить бинарник для вашей архитектуры, выполнить login и затем
cloudflared tunnel run --token <TOKEN>

Учтите: на Android для cloudflared/ngrok иногда требуются дополнительные шаги (proot/chroot, корректные бинарники для ARM/ARM64).

Мини‑чеклист безопасности перед выставлением в интернет

  • Смените дефолтные пароли и запретите логин по паролю в SSH (только ключи).
  • Ограничьте доступ по IP или используйте аутентификацию приложения.
  • Включите TLS (Cloudflare может обеспечить TLS поверх туннеля) или настройте обратный прокси с сертификатом.
  • Удалите лишние сервисы и закройте ненужные порты.

Частые ошибки

  • Сервис доступен только на localhost — проверьте bind‑адрес (0.0.0.0).
  • Приложение уходит в спящий режим — отключите оптимизацию батареи.
  • Не работает проброс портов — проверьте CGNAT у провайдера; используйте туннель.
  • Неправильные права к файлам в /storage — используйте termux-setup-storage и работайте в ~/storage.

FAQ

  • Нужен ли root? — Нет: большинство сценариев работают без root. Root даёт дополнительные возможности (слушать низкие порты), но не обязателен.
  • Как сделать автозапуск сервисов? — Используйте termux‑services / termux‑boot или system‑скрипты внутри Termux.
  • Подойдёт ли старый телефон для постоянного сервера? — Подойдёт для небольших задач, но учитывайте надёжность батареи и долговременную нагрузку.

Если хотите, могу сгенерировать готовый скрипт установки nginx+php+mysql для вашей архитектуры (arm/arm64/x86) или пошаговую инструкцию для KSWEB с примером конфигурации.