We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Разворачивание полностью автономного сервера на Termux: Полное руководство

Пошаговая инструкция по настройке автономного сервера на Android через Termux: веб-сервер, база данных, SSH, автозапуск и безопасность. Экспертное руководство от РыбинскЛАБ.

Termux — мощный терминал Linux для Android, позволяющий развернуть полноценный сервер прямо на смартфоне. В этой статье мы рассмотрим создание полностью автономного сервера, работающего без постоянного подключения к ПК и внешним мониторам. Материал подготовлен экспертами РыбинскЛАБ для образовательных целей в рамках действующего законодательства РФ.

Подготовка окружения

Установите Termux из официального источника (F-Droid или GitHub). Избегайте версии из Google Play — она устарела. После установки обновите пакеты:

pkg update && pkg upgrade -y

Установите базовые утилиты:

pkg install -y git curl wget nano htop termux-api

Настройка хранилища и прав доступа

Предоставьте Termux доступ к общему хранилищу для работы с файлами:

termux-setup-storage

Создайте структуру директорий для проектов:

mkdir -p ~/server/{www,db,logs,config,scripts}

Установка и настройка веб-сервера (Nginx + PHP)

Установите Nginx и PHP-FPM:

pkg install -y nginx php php-fpm php-mysqli php-gd php-curl php-mbstring php-xml php-zip

Настройте Nginx. Отредактируйте конфигурацию:

nano $PREFIX/etc/nginx/nginx.conf

Пример минимальной конфигурации для автономной работы:

worker_processes 1;
events {
    worker_connections 1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8080;
        server_name  localhost;
        root         /data/data/com.termux/files/home/server/www;
        index        index.php index.html;
        location / {
            try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
            fastcgi_pass   unix:/data/data/com.termux/files/usr/var/run/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

Настройте PHP-FPM. Отредактируйте $PREFIX/etc/php-fpm.d/www.conf:

listen = /data/data/com.termux/files/usr/var/run/php-fpm.sock
listen.owner = www
listen.group = www
listen.mode = 0660
user = www
group = www
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

Создайте тестовый файл:

echo '' > ~/server/www/index.php

Установка базы данных (MariaDB)

pkg install -y mariadb

Инициализируйте базу данных:

mysql_install_db --datadir=$PREFIX/var/lib/mysql

Запустите сервер и настройте безопасность:

mysqld_safe --datadir=$PREFIX/var/lib/mysql &
sleep 5
mysql_secure_installation

Создайте базу и пользователя для проекта:

mysql -u root -p -e "CREATE DATABASE autoserver CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'serveruser'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON autoserver. TO 'serveruser'@'localhost'; FLUSH PRIVILEGES;"

Настройка SSH для удаленного управления

Установите OpenSSH:

pkg install -y openssh

Настройте ключевую аутентификацию (рекомендуется для безопасности):

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

Отредактируйте $PREFIX/etc/ssh/sshd_config:

Port 2222
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers $USER

Запустите SSH-сервер:

sshd

Автозапуск сервисов (Termux:Boot)

Установите аддон Termux:Boot из F-Droid. Создайте скрипт автозапуска:

mkdir -p ~/.termux/boot
nano ~/.termux/boot/start-server.sh

Содержимое скрипта:

#!/data/data/com.termux/files/usr/bin/bash
# Ожидание готовности системы
sleep 10
# Запуск MariaDB
mysqld_safe --datadir=$PREFIX/var/lib/mysql > ~/server/logs/mariadb.log 2>&1 &
# Запуск PHP-FPM
php-fpm -D > ~/server/logs/php-fpm.log 2>&1 &
# Запуск Nginx
nginx > ~/server/logs/nginx.log 2>&1 &
# Запуск SSH
sshd > ~/server/logs/ssh.log 2>&1 &
# Уведомление (требует termux-api)
termux-notification --title "Сервер запущен" --content "Все сервисы активны" --priority high

Сделайте скрипт исполняемым:

chmod +x ~/.termux/boot/start-server.sh

Управление питанием и Wake Lock

Для предотвращения усыпления устройства используйте termux-wake-lock. Добавьте в скрипт автозапуска:

termux-wake-lock

Для экономии заряда настройте termux-battery-status мониторинг в отдельном скрипте.

Безопасность и изоляция

  • Используйте фаервол (например, iptables через root или приложения вроде AFWall+).
  • Ограничьте доступ к портам только доверенными IP (локальная сеть).
  • Регулярно обновляйте пакеты: pkg upgrade -y.
  • Настройте VPN (например, WireGuard) только для создания локальной защищенной сети между устройствами, а не для обхода блокировок.
  • Храните секреты в переменных окружения или ~/.env файлах с правами 600.

Мониторинг и логирование

Настройте ротацию логов через logrotate (установите: pkg install logrotate). Пример конфига ~/server/config/logrotate.conf:

~/server/logs/.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 640 www www
}

Добавьте в крон (установите pkg install cronie):

crontab -e
# Ежедневно в 03:00
0 3   * /data/data/com.termux/files/usr/bin/logrotate ~/server/config/logrotate.conf

Тестирование и проверка

После перезагрузки устройства проверьте:

  • Веб-интерфейс: http://localhost:8080 или http://:8080 в локальной сети.
  • SSH: ssh -p 2222 user@.
  • База данных: mysql -u serveruser -p autoserver.
  • Процессы: ps aux | grep -E 'nginx|php-fpm|mysqld|sshd'.

Заключение

Вы развернули полностью автономный сервер на Android с веб-сервером, базой данных, SSH и автозапуском. Такое решение подходит для домашних лабораторий, IoT-проектов, тестирования и обучения. При необходимости масштабирования или интеграции с корпоративной инфраструктурой — обратитесь к экспертам РыбинскЛАБ. Мы предоставляем услуги по проектированию, внедрению и сопровождению серверных решений на базе Linux, Android и гибридных платформ. Свяжитесь с нами для консультации или заказа работ.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект