Веб-сервер на старом смартфоне Android

Бывает такое, что смартфон становится ненужным — например, на нём разбивается экран или он просто старенький, тормозит даже браузер. Что делать с таким гаджетом, не выбрасывать же его? В самом деле, американцы летали на Луну с компьютерами, у которых характеристики много хуже, чем в вашем старом смартфоне. Скорее всего, в нём 4−8 процессорных ядер, 2−4 гигабайта оперативной памяти, блок бесперебойного питания с аккумулятором. Не слабее, чем некоторые компьютеры.
Попробуем найти этому смартфону полезное применение.
Рассматриваем варианты
Первый вариант, который приходит в голову — установить на телефон Linux-окружение и какой-нибудь полезный софт, который будет работать в «фоновом режиме» на пользу домашнему хозяйству. Что это может быть?
Ясно, что телефон не сможет работать как медиасервер и обрабатывать видеопотоки, для этого у него слишком слабый процессор.
Теоретически можно подключить к нему внешний HDD (тоже остался от сломанного ноутбука, для него куплен специальный корпус-переходник с интерфейсом USB). Даже на ёмкой карте microSD он вполне может работать как файловое хранилище или сервер для бэкапов, места хватит. Правда, карты microSD вряд ли можно посоветовать как надёжное хранилище, они часто выходят из строя.
Простая синхронизация
Если поднимать на телефоне сервер для бэкапов или файловый сервер, то самый простой вариант — это установить программу Syncthing.
Syncthing выполняет непрерывную синхронизацию файлов между двумя или более компьютерами в режиме реального времени. В таком варианте синхронизации отсутствует центральный сервер, а все компьютеры участвуют в синхронизации как бы peer-to-peer. Синхронизация идёт по дате изменения файла, ещё имеется поддержка синхронизации на уровне блоков, т.е. при небольших изменениях в файле, будут синхронизированы только изменившиеся блоки, а не весь файл сразу. Трафик шифруется по TLS (transport layer security). Опять же, программа с открытым исходным кодом, что говорит в пользу надёжности и безопасности такого решения.
В любом случае для персональных компьютеров и ноутбуков в доме нужно резервное хранилище, так что это вполне подходящий вариант.
Syncthing выпускается под все распространённые операционные системы: Linux, Windows, macOS, FreeBSD, OpenBSD, NetBSD, Dragonfly BSD, Illumos, Solaris. Ну и Android, конечно. То есть можно выполнять синхронизацию файлов между всеми этими устройствами, если поставить клиент на каждое из них. Затем в программе на компьютере добавляем ID устройства — и они синхронизируются.
Syncthing на компьютере
Затем остаётся выбрать папки для синхронизации на компьютере и телефоне.
Syncthing на телефоне
Потом программа может постоянно работать в фоновом режиме. Как вариант, можно установить конкретные условия, при которых она выполняется.
Сервер для резервного копирования под Linux
Можно поставить более серьёзную программу — UrBackup. Это опенсорсный сервер для резервного копирования. Он может работать по такому же принципу, что и Syncthing — постоянно в фоновом режиме отслеживать папки, которые требуется сохранять в резервной копии, но это более серьёзное решение, которое предпочтительно при управлении бэкапами в сети из десятка компьютеров. Система кроссплатформенная и поддерживает дистрибутивы Linux, Windows и Mac OS.
Веб-интерфейс UrBackup
Чтобы заработал UrBackup, нужно установить Linux-окружение. Тут у нас есть два варианта:
- Установить настоящий дистрибутив через Linux Deploy — опенсорсное приложение с открытым исходным кодом для простой и быстрой установки GNU/Linux на Android.
- Установить Linux-окружение Termux.
Обязательное требование — рутованный смартфон (для рутования можно использовать инструмент, например, такой Magisk).
Итак, алгоритм примерно такой, судя по инструкции от Ханны Ли, которая и реализовала этот план.
-
Подключаем HDD/SSD к телефону. Можно подключить его USB-кабелем напрямую: в этом случае мы получим максимально возможную скорость. Но на реальном файл-сервере или сервере бэкапов скорость не всегда является самым критичным фактором, разве что на очень больших объёмах чтения/записи. Важнее стабильность. С USB-кабелем гораздо выше риск столкнуться с ошибками ввода-вывода в процессе копирования.
Поэтому для повышения надёжности лучше использовать USB-хаб, в котором есть microUSB для выхода на телефон и стандартный USB для подключения HDD, плюс дополнительный разъём для питания.
В идеале нужно покупать хаб с адаптером Ethernet. Сервер может работать и по WiFi, но кабельное подключение надёжнее.
USB-хаб с разъёмом Ethernet и выходом microUSB

Termux
Возможно, всё это можно сделать без рутования, с использованием Linux-окружения Termux. Проверим, так ли это.
Termux — это бесплатный эмулятор консоли и Linux-окружение под Android, которое устанавливается как обычное приложение и не требует рутового доступа, включает в себя множество пакетов операционной системы Linux. В базовом формате там установлен минимум, дополнительные пакеты можно организовать при помощи диспетчера пакетов «pkg» (аналоге apt). Это самый удобный способ запустить на Android практически любые линуксовые программы. Лучше устанавливать его с F-Droid, а не из Google Play.

Изначально Termux устанавливается в виде «голого» эмулятора. При первом запуске загружается небольшая базовая система, а все нужные пакеты можно установить с помощью менеджера пакетов apt , стандартного для Debian и Ubuntu. Но его тоже нужно будет установить с помощью встроенного пакетного менеджера pkg .
В нашем случае можно сразу установить apt:
Затем с его помощью установить wget, ну или использовать родную команду pkg :
Потом можно установить тот же UrBackup, другой файл-сервер или сервер резервного копирования на свой выбор.
К примеру, можем поставить веб-сервер nginx:

После этого запускаем веб-сервер:
Если открыть браузер на смартфоне и набрать localhost:8080 , то мы увидим работающий веб-сервер:

Теперь можно скопировать в рабочую директорию nginx файлы HTML — и на телефоне будет полноценный сайт, который можно открыть для общего доступа через интернет. Тогда у нас будет собственный сервер и собственный хостинг, мы не платим никакому провайдеру, кроме сотового оператора, и можем публиковать в интернете что угодно. В принципе, сайт будет всем доступен до тех пор, пока телефон подключён к сотовой сети, на нём открыта сессия Termux, а в ней запущен nginx. Главное, чтобы сотовый оператор не блокировал этот трафик, потому что мы формально можем нарушать его условия обслуживания.
Конечно, для надёжного хостинга лучше рутануть смартфон и установить нормальный дистрибутив через Linux Deploy. Но и в Termux всё работает, как видим.
Вывод: Таким образом, даже из старого смартфона Android можно сделать адекватный, полнофункциональный многоядерный Linux-сервер на ARM-архитектуре. Если подключить внешний HDD/SDD, то он будет работать как хранилище файлов, сервер резервного копирования для домашней сети или веб-сервер, для ваших личных нужд.
НЛО прилетело и оставило здесь промокоды для читателей нашего блога:
Как зайти на сервер в Minecraft на телефоне

Покорять виртуальный мир блоков можно как в одиночку, так и в компании нескольких друзей или случайных игроков. Для последнего варианта студия Mojang разработала многопользовательский режим. Разберемся, как зайти на сервер в Minecraft на телефоне без лицензии. Рассмотрим особенности сетевого режима и процедуры входа в онлайн.

Что такое сетевой режим Minecraft?
Мультиплеер в Minecraft появился в 2010 году в рамках версии Alpha. Многопользовательский режим реализован в виде приватных или публичных серверов. На частном сервере объединяется несколько друзей и совместно исследуют нетронутый мир. Общественные сервера предназначены для массовых скоплений людей. Администрация устанавливает собственные правила на PVP, кражи, наказания и прочие моменты. Также владельцы имеют право на установку модификаций, улучшений и так далее.


Для входа на большинство крупных серверов потребуется лицензия игры. Ее необходимо приобрести через Play Market, а также завести аккаунт Xbox Live.
При создании собственного сервера в мультиплеере пользователь выбирает один из режимов. В его условиях и ограничениях будут находиться все участники сервера:
- Выживание. Потеря всех ресурсов после смерти. Возрождение в контрольной точке.
- Хардкор. Отключает возможность применения чит-команд и убирает бонусный сундук. Также после смерти персонаж полностью уничтожается, а игрок вынужден начать заново.
- Приключение. Режим для исследования пользовательских карт. Подчиняется правилам, установленным создателем модификации.
- Творческий режим. Создан для свободного строительства. Можно летать, получать неограниченное количество блоков и так далее.
Перед выбором сервера ознакомьтесь с режимом и правилами, установленными администрацией. Если вас все устраивает, переходите к процедуре входа.
Как начать играть с друзьями на телефоне
Итак, разберемся, как войти на сервер:
- Запустите Minecraft Pocket Edition на Андроиде. На приветственном экране нажмите «Войти бесплатно».

- После этого появится страница авторизации в Microsoft. Вам необходимо вписать логин, которым является электронная почта, телефон или аккаунт Skype. Затем нажать «Далее». Здесь же представлена ссылка «Создайте ее!» для перехода к процедуре регистрации учетной записи. Воспользуйтесь ей, если у вас еще нет собственного аккаунта.

- В следующем окне сервис попросит вас ввести пароль от аккаунта Microsoft. Укажите защитную комбинацию и нажмите «Вход». Если вы не помните данные для авторизации, кликните по ссылке «Забыли пароль?» и пройдите процедуру восстановления.

- Если логин и пароль введены правильно, сервис встретит приветственным сообщением. Для перехода к Minecraft нажмите «Сыграем!».

- Подождите окончания процедуры авторизации. При стабильном подключении к интернету она займет не больше минуты.

- Затем появится окно с информацией о последнем обновлении. Можно ознакомиться со списком нововведений или сразу тапнуть на кнопку «Продолжить».

- Теперь вы получите доступ к главному меню Майнкрафта. Отсюда можно перейти к настройкам игры или профиля, но мы сразу жмем «Играть», чтобы подключиться к серверу.

- Откроется меню для создания мира или подключения к серверу. Перейдите в третью вкладку и подождите 1-2 минуты, пока игра найдет список доступных серверов. В таблице слева отображаются названия, а справа – текущий онлайн и развернутые описания. Выделите необходимый сервер и нажмите кнопку присоединения.

- Ознакомьтесь с предупреждением и поставьте галочку под цифрой 1, чтобы не встречаться с данным окном при каждом входе на сервер. Затем нажмите «Продолжить».

Если владельцем были установлены какие-либо модификации, то игра автоматически скачает недостающие компоненты и файлы. Помните, что подключиться к серверам для ПК с телефона невозможно!
Описанный способ доступен для любой версии Minecraft Pocket Edition, начиная с 0.15.0.
Если вы знаете точные данные сервера (IP-адрес, порт и название), то сможете подключиться к нему напрямую:
- В главном меню нажмите «Играть» и выберите вкладку «Миры». Вместо создания нового мира следует нажать на иконку с изображением знака +.
- Появится форма для ввода имени, IP-адреса и порта. Заполните поля и нажмите кнопку добавления. Если сервер активен в текущий момент, он появится в основном списке вместе с мирами, созданными ранее.
- Тапните по кнопке присоединения к серверу и подождите несколько секунд. Начнется загрузка игрового мира.
Видео
Если у вас остались вопросы по поводу работы с сетевым режимом, обязательно посмотрите этот видеоролик.
Заключение
Начать играть в Minecraft в сетевом режиме крайне просто. Зарегистрируйте аккаунт Microsoft, найдите нужный сервер и подключитесь к нему. Вся процедура занимает не больше 5 минут.
Как подключиться к серверу с обычного мобильного телефона

Представьте ситуацию, когда Вы сделали работу по своему проекту, закоммитили все изменения, залили их на продакшен и уехали по своим делам (домой, на прогулку или куда-либо ещё). И тут вдруг Вы вспоминаете, что забыли включить в код одну важную функцию. Или вообще, Вы решили проверить по дороге свою работу, открываете Ваш проект с мобильного телефона и видите, что почему-то всё работает не так, как нужно и Вам срочно надо откатить все изменения на предыдущий коммит. Я сталкивался с такой ситуацией и понимаю, что в таких ситуациях действовать нужно незамедлительно, без лишнего шума и информирования начальника проекта 🙂
Решение заключается в установке одного приложения на свой мобильный телефон и подключения с его помощью к серверу через SSH. А имея SSH подключение, Вы сможете и отредактировать нужную функцию в нужном файле, и и откатить состояние проекта до нужного коммита, а также сделать новый коммит после этого.
Итак, как подключиться к серверу, используя свой мобильный телефон и Termux
Первым делом, устанавливаем на телефон программу Termux . Она доступна для всех современных устройств. Root-доступ не требуется . Программа бесплатна, регулярно обновляется, имеет оценку 4,7 балла и более 1 млн. скачиваний на момент написания данной статьи. Она позволяет использовать на Вашем мобильном телефоне оболочку Linux . Да, Вы поняли абсолютно правильно — полноценный Linux с командной строкой, bash и всеми остальными плюшками в Вашем телефоне! При желании Вы сможете также установить Pyton, PHP, Nodejs и многое другое . А самое главное — Вы сможете использовать полноценный пакет OpenSSH .
После установки приложения выполняем команду:
Вуа-ля! Теперь можем подключиться к любому серверу и выполнять там любые команды!
Т.к. в экстренной ситуации Вам будет не до поиска хоста, логина и пароля, предлагаю заранее создать аутентификацию по ключу и alias для подключения. После данных манипуляций Вам потребуется только лишь ввести команду алиаса и на Вашем экране отобразится командная строка сервера без необходимости вводить логины и пароли. Для этого заходим в папку .ssh
Далее, имея перед собой хост, логин и пароль к серверу, выполняем команду:
На все вопросы просто нажимаем Enter до тех пор, пока перед нами не появится визуальное обозначение нашего ключа, например вот такое:
Далее вводим команду, предварительно заменим логин@хост на свои значения:
После этого появится вопрос о добавлении ключа. Вводим ‘ yes ‘ и нажимаем Enter .
Затем Вас запросят пароль. Вводим корректный пароль.
После этого Вы увидите сообщение о том, что Ваш ключ успешно добавлен и теперь Вы можете подключиться к серверу без ввода пароля, используя команду вида:
Теперь давайте создадим alias для быстрого запуска данной команды.
Если у Вас не установлена программа для поиска файлов locate, то Вы увидите сообщение об этом с инструкцией, как её установить. В частности, нужно будет выполнить:
Поскольку база данных по файлам обновляется 1 раз в день, то обновим её вручную командой:
После этого снова повторим команду поиска файла с настройками:
Теперь файл точно будет найден и Вы увидите путь к файлу. Возможно, он будет таким: /data/data/com.termux/files/usr/etc/bash.bashrc
Теперь нам нужно отредактировать этот файл и добавить alias для нашей команды. Используйте команду:
У Вас наверняка не будет установлен редактор nano , установите его предложенной терминалом командой.
После открытия файла bash.bashrc для редактирования, впишите на новую строку алиас команды подключения. Например:
Сохраните файл, используя Ctrl+X . Чтобы ввести эту команду с телефона, на котором отсутствует клавиша Ctrl , а также возможность зажатия клавиш, я рекомендую использовать любую виртуальную клавиатуру для разработчиков, например клавиатуру NextApp , которая также доступна для установки для любых мобильных устройств, или любую другую виртуальную клавиатуру, на которой есть стрелки и клавиши Alt, Shift, Ctrl.
При сохранении файла не забудьте нажать Y и Enter .
Теперь, чтобы перезагрузить терминал, наберите Exit и Enter , а затем заново запустите приложение Termux.
Теперь введите имя Вашего алиаса, например server и Вы увидите командную строку Вашего сервера, на котором Вы сможете использовать всё, что Вам потребуется.
P.S. Если у Вас возникнут трудности с созданием алиаса или с созданием аутентификации по ключу, то Вы можете обойтись и без этого. Имея установленный пакет OpenSSH , вы и так сможете подключиться к серверу с помощью обычной команды:
Или если у Вас отдельный порт для SSH:
Ключ и alias мы добавили только для Вашего же удобства, чтобы иметь возможность подключаться к серверу с помощью ввода нескольких символов, не имея под рукой никаких данных о логинах и паролях.
Подписывайтесь на группу в ВКонтакте, вступайте в сообщество на Facebook, чтобы всегда быть в курсе актуальных выпусков
W e b d e v e l o p m e n t b l o g !