Что такое сервер на телефоне
Делаем сервер из Android-телефона
Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.
На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.
Ну и в-четвёртых, мне просто было жаль их выбрасывать. Консьюмеризм в наше время предписывает каждый год-два покупать новые смартфоны, производители блокируют возможности железа, которые им невыгодны, прекращают поддержку старых моделей, оставляя людей беспомощными. Миллионы смартфонов отправляются на свалку истории каждый год, хотя каждый из них это мощный компьютер.
TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.
Сразу хочу оговориться — я понимаю, что есть типовые решения, например Termux или UserLAnd, и спектр поддерживаемых устройств у них шире. Но все они работают как надстройки над основной системой, Android, и подвержены её ограничениям, таким как агрессивное сокращение энергопотребления или перенос задач на LITTLE-ядра при выключении экрана. Будущее Termux, например, вообще неясно из-за всё более жёстких гаек безопасности в Android 11. UserLAnd, помимо этого, работает через PRoot, который при всей своей пользе ощутимо замедляет процессы с большим количеством системных вызовов. В этой статье мы разбираем именно создание сервера на железе без Android.
Часть первая. Прошивка
Проект PostmarketOS был создан именно ради этой цели — сохранение вычислительных устройств после прекращения их поддержки производителями. Список поддерживаемых устройств можно найти здесь.
Для установки требуется телефон с разблокированным загрузчиком. В качестве примера буду использовать OnePlus One из-за простоты разлочки со стороны производителя. Для каждого производителя список шагов разный, ниже привожу обобщённые действия для смартфона 2018-2021 года выпуска:
Далее авторизуем подключение на самом телефоне
После разблокировки телефон сбросит данные снова перезагрузится в Android, перезапустите его в режим fastboot комбинацией клавиш или повторите релевантные для этого шаги 3 и 4.
Если разблокировка прошла успешно, далее можно следовать стандартной процедуре установки PmOS:
На этом этапе pmbootstrap запросит пароль и задаст довольно много вопросов о том, как сконфигурировать систему и целевое устройство. Итоговый результат будет записан в
Затем с помощью pmbootstrap install сразу же начинаем сборку образа целевой системы. После сборки её предлагается установить самому, так как механизм установки варьируется от модели к модели. Пример того, как это делается стандартно, и как вышло у меня, ниже.
После завершения процесса sideload жмём «Reboot to system». Должен пойти процесс загрузки ядра и далее самой PostmarketOS.
Часть вторая. Настройка PostmarketOS
По сути своей, PostmarketOS построена на основе дистрибутива Linux под названием Alpine. Это позволяет создать работающую систему минимального размера, что для большого количества старых устройств с ограниченной внутренней памятью критично.
Однако, есть и подводные камни. О них ниже:
Итак, после загрузки телефона с PostmarketOS нам необходимо каким-то образом с ним взаимодействовать. Если вы ставили оболочку Phosh или Plasma Mobile, скорее всего вы сможете это сделать напрямую с тачскрина телефона. Если по каким-то причинам графический интерфейс не сработал, подключайте телефон к компьютеру USB-кабелем, PostmarketOS автоматически создаст дополнительную сеть:
После чего к телефону можно будет подключиться с именем и паролем пользователя, который вы указывали при pmbootstrap install :
Если вы видите эти строчки — значит PostmarketOS установлена верно. В противном случае попробуйте посмотреть секцию Troubleshooting для вашего устройства на вики PmOS, измените конфигурацию для pmbootstrap install или спросите мейнтейнеров в IRC или Matrix чате (все три пункта ваш покорный слуга в итоге и сделал).
Настройка сети
Если не получилось настроить WiFi сеть через графическую оболочку, ниже пример как сделать это через консоль. Предварительно подключите телефон к USB-интерфейсу вашего ПК.
Найден секретный способ улучшить скорость интернета на вашем телефоне
Что такое DNS сервер
DNS — это система доменных имен, которая обеспечивает связь между названием сайта и его адресом. Принцип ее работы можно сравнить с телефонной книгой на вашем смартфоне. Каждому названию сайта соответствует определенная цифровая комбинация на сервере, и когда вы вводите название в адресной строке браузера, компьютер или смартфон запрашивает цифровой IP-адрес сайта через специальный сервер, который хранит базу этих адресов.
Переход на сторонние серверы может помочь вам устранить эти ошибки, а также получать доступ к некоторым заблокированным ранее сайтам, уменьшить время отклика между вашим устройством и сервером, а значит повысить и скорость соединения.
Существует также специальный протокол DNS over TLS, это тот же DNS, но осуществляемый с дополнительным шифрованием, повышающим безопасность и конфиденциальность пользователя путем перехвата данных.
Как выбрать и изменить DNS-сервер на телефоне Android
Во всех смартфонах на Android, начиная с версии 9.0 добавлена возможность ручной настройки DNS-сервера в настройках.
Чтобы настроить персональный сервер:
Список некоторых альтернативных DNS-серверов:
Google Public DNS. Бесплатный глобальный сервис от Google известен по всему миру, поэтому нет смысла говорить о его надежности. Сервер обеспечивает безопасность и более высокую скорость интернет-соединения, обеспечивая ускоренную загрузку страниц за счет кэширования данных, а также обеспечивает улучшенную защиту от кибератак.
Имя хоста: dns.google
Quad 9 DNS. Эта бесплатная рекурсивная служба, что означает, что для поиска информации сервер может обращаться к другим DNS серверам. Данный сервер обеспечивает высокую производительность, а также блокирует большинство вредоносных доменов, повышая безопасность интернет-серфинга.
Имя хоста: dns.quad9.net
Cloudflare. Данный сервис владеет и управляет огромной сетью серверов и использует их для ускорения работы сайтов, а также для защиты их от вредоносных атак, таких как DDoS. Многие пользователи, подключившиеся к данному серверу, отмечают ускоренную по сравнению со стандартными серверами загрузку страниц в интернете.
Имя хоста: 1dot1dot1dot1.cloudflare-dns.com
AdGuard DNS. С помощью данного сервиса, кроме повышенной защиты личных данных, вы также сможете избавиться от рекламы на страницах сайтов и игр. Реклама вырезается в момент обработки DNS запросов, в результате страницы загружаются быстрее, не потребляя ресурсы смартфона.
Имя хоста: dns.adguard.com
После установки любого сервера из списка необходимо включить, а затем выключить режим полета в настройках вашего смартфона. Это нужно для очистки кэша DNS.
Установка альтернативного DNS с помощью приложения
Для поиска и установки оптимального DNS-сервера можно воспользоваться сторонним приложением из Play Маркета. Одним из таких бесплатных приложений является приложение Net Optimizer, которое сканирует наиболее быстрые и безопасные DNS и производит подключение в один клик.
Скачиваем и устанавливаем приложение Net Optimizer из Play Маркета.
Превращаем смартфон или планшет под управлением Android в сервер
Новые модели смартфонов и планшетов, а также версии операционной системы Android сменяют друг друга так быстро, что у многих любителей электронных гаджетов скопилась приличная коллекция вполне работоспособных и полностью исправных аппаратов, которые, к сожалению, уже морально устарели. Конечно, их можно по дешёвке продать или подарить, но есть и другое решение, способное дать всем этим устройствам вторую жизнь. Их все можно превратить в серверы различного назначения — да-да, в серверы!
Не удивляйтесь, ведь по производительности практически любые смартфоны и планшеты на базе операционной системы Android могут легко поспорить с самыми настоящими «взрослыми» серверами всего лишь десятилетней давности. Единственное условие — вы должны обладать правами администратора, то есть «сделать root» на таком устройстве. Существуют различные программы для получения прав root, к тому же процедуры для разных аппаратов могут различаться, поэтому рекомендуем поискать информацию по вашей конкретной модели в интернете.
В какой же именно сервер можно превратить смартфон или планшет? Практически в любой, но проще всего на базе операционной системы Android организовать серверы трёх типов: веб-сервер, файловый или FTP-сервер и медиасервер.
Веб-сервер — это то, куда вы зашли, открыв эту страницу — как и любую другую страницу в интернете. Для создания веб-сервера, работающего по протоколу HTTP, требуется минимум вычислительной мощности, так что для этого подойдёт даже весьма старый смартфон или планшет. Вы можете организовать как полноценный веб-сервер, доступный через интернет, так и просто локальный HTTP-сервер, видимый только в домашней сети и предназначенный, к примеру, для отладки работы сайтов перед размещением их на профессиональном хостинге. При этом, несмотря на низкие аппаратные требования, для правильной настройки веб-сервера требуются некоторые специальные знания, поэтому для неподготовленного пользователя это может оказаться весьма непростой задачей.
Файловый сервер — это хранилище файлов, доступное в сети посредством, как правило, протокола FTP. Самый простой в настройке сервер, который можно организовать на устройстве под управлением Android: все его функции заключаются в создании папок, в которые можно записывать файлы и из которых эти файлы можно считывать. Проблема, однако, в другом: обычно у смартфонов и планшетов не слишком много встроенной памяти, поэтому для создания полноценного файлового сервера придётся использовать флеш-карты или, что намного лучше, внешние накопители.
Медиасервер — наверное, самый полезный и интересный тип сервера, в который можно превратить устройство на основе Android. Такой сервер обеспечит потоковую трансляцию звука и видео на домашнюю аудиовидеосистему, компьютер, игровую приставку или другие планшеты и смартфтоны. Это более функциональный, но и более сложный вариант файлового сервера, который может использовать множество различных протоколов (например, DLNA) для соединения и передачи файлов.
Любой правильно настроенный сервер получит локальный IP-адрес, но у всей вашей сети, выходящей в интернет, будет единый внешний IP-адрес. Если вы планируете использовать сервер только в пределах домашней сети, то для подключения к нему потребуется знание локального IP-адреса. Кроме того, для правильной работы серверов может понадобиться переназначение портов (port forwarding) на вашем домашнем роутере: такое перенаправление позволит всем устройствам в сети «видеть» порт, через который работает сервер.
Если вы хотите использовать Android-сервер не только в рамках локальной сети, но и за её пределами, вам придётся воспользоваться услугой динамического DNS либо оплатить статический IP-адрес и обзавестись доменным именем. Это отдельная большая тема, и мы не будем её затрагивать здесь, тем более что в интернете можно найти множество подробных инструкций и советов по работе с этими сервисами.
Для создания сервера на базе устройства под управлением Android можно воспользоваться специализированными программами, которые, как обычно, загружаются с Google Play. Некоторые из них бесплатные, некоторые платные; мы же посоветовали бы прежде всего обратить внимание на три из них: Servers Ultimate, My FTP Server и Pixel Media Server.
Servers Ultimate — это, пожалуй, наиболее универсальная и гибкая программа по настройке серверов в Android: она может похвастаться встроенной поддержкой более 60 типов серверов и более 70 сетевых протоколов, причём отдельно предлагаются пакеты расширения с дополнительными категориями серверов. Бесплатная пробная версия позволяет создать два сервера, которые проработают в течение 14 дней, а полная версия Servers Ultimate Pro обойдётся примерно в 200 рублей.
В зависимости от ваших целей Servers Ultimate может предложить исчерпывающий набор возможностей — от HTTP/веб-серверов и FTP/файловых серверов до медиасерверов с поддержкой DLNA, причём для каждого сервера предлагается масса специфических настроек. Для запуска нужного типа сервера следует просто выбрать его в списке и щёлкнуть по иконке, а затем вы сможете приступить к тонкому конфигурированию.
Приложение может похвастаться встроенными MySQL- PHP- и NAS-серверами, оно обеспечивает шифрование настроек, автоматический запуск и остановку по команде через СМС и Wi-Fi.
Как очевидно из названия, My FTP Server — это простой в настройке бесплатный файловый сервер для устройств под управлением Android. Все настройки предельно просты и понятны: чтобы запустить файловый сервер, нужно задать имя пользователя и пароль, выбрать директорию по умолчанию — и всё: можно подключаться к нему через любой FTP-клиент, чтобы добавлять и удалять файлы.
Приложение My FTP Server хорошо подходит для записи и чтения файлов с устройства под управлением Android, причём оно может автоматически запускаться при загрузке гаджета. Доступ к файлам может быть дополнительно ограничен только определёнными беспроводными сетями. Системные требования My FTP Server минимальны; программа работает с Android начиная с «лохматой» версии 2.2.
Программа Pixel Media Server — это простой в настройке и использовании медиасервер для смартфонов и планшетов под управлением Android, работающий с протоколами UPNP/DLNA. Сервер поддерживает массу форматов, включая аудиофайлы MP3, WAVE, FLAC, видеофайлы AVI, MP4, 3GP, MPEG, MPG, MKV, FLV, TS и MOV, а также цифровые изображения JPEG и PNG. Разработчик гарантирует совместимость Pixel Media Server со всеми сертифицированными UPNP/DLNA-устройствами, включая «умные» телевизоры, медиаплееры, игровые приставки и прочее оборудование.
Бесплатное приложение Pixel Media Server — это один из самых простых способов превратить любое устройство под управлением Android в медиасервер. Для включения сервера нужно просто запустить приложение Pixel Media Server и поменять две настройки — название устройства и папку, в которой находятся мультимедийные файлы. После этого нужно нажать кнопку Play с характерным треугольником, и сервер готов транслировать потоковый контент. Не забудьте отключить функцию перехода в спящий режим, иначе у вас возникнут проблемы со стримингом контента.
Разумеется, существует множество других приложений для создания сервера под управлением Android, но мы бы посоветовали начать именно с этих трёх: они не только максимально просты в настройке, но и заслужили множество наилучших отзывов в Google Play.
Веб-сервер на старом смартфоне 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-окружение. Тут у нас есть два варианта:
Обязательное требование — рутованный смартфон (для рутования можно использовать инструмент, например, такой Magisk).
Итак, алгоритм примерно такой, судя по инструкции от Ханны Ли, которая и реализовала этот план.
Поэтому для повышения надёжности лучше использовать USB-хаб, в котором есть microUSB для выхода на телефон и стандартный USB для подключения HDD, плюс дополнительный разъём для питания.
В идеале нужно покупать хаб с адаптером Ethernet. Сервер может работать и по WiFi, но кабельное подключение надёжнее.
USB-хаб с разъёмом Ethernet и выходом microUSB
Termux
Возможно, всё это можно сделать без рутования, с использованием Linux-окружения Termux. Проверим, так ли это.
Termux — это бесплатный эмулятор консоли и Linux-окружение под Android, которое устанавливается как обычное приложение и не требует рутового доступа, включает в себя множество пакетов операционной системы Linux. В базовом формате там установлен минимум, дополнительные пакеты можно организовать при помощи диспетчера пакетов «pkg» (аналоге apt). Это самый удобный способ запустить на Android практически любые линуксовые программы. Лучше устанавливать его с F-Droid, а не из Google Play.
В нашем случае можно сразу установить apt:
Затем с его помощью установить wget, ну или использовать родную команду pkg :
Потом можно установить тот же UrBackup, другой файл-сервер или сервер резервного копирования на свой выбор.
К примеру, можем поставить веб-сервер nginx:
После этого запускаем веб-сервер:
Теперь можно скопировать в рабочую директорию nginx файлы HTML — и на телефоне будет полноценный сайт, который можно открыть для общего доступа через интернет. Тогда у нас будет собственный сервер и собственный хостинг, мы не платим никакому провайдеру, кроме сотового оператора, и можем публиковать в интернете что угодно. В принципе, сайт будет всем доступен до тех пор, пока телефон подключён к сотовой сети, на нём открыта сессия Termux, а в ней запущен nginx. Главное, чтобы сотовый оператор не блокировал этот трафик, потому что мы формально можем нарушать его условия обслуживания.
Конечно, для надёжного хостинга лучше рутануть смартфон и установить нормальный дистрибутив через Linux Deploy. Но и в Termux всё работает, как видим.
Вывод: Таким образом, даже из старого смартфона Android можно сделать адекватный, полнофункциональный многоядерный Linux-сервер на ARM-архитектуре. Если подключить внешний HDD/SDD, то он будет работать как хранилище файлов, сервер резервного копирования для домашней сети или веб-сервер, для ваших личных нужд.
НЛО прилетело и оставило здесь промокоды для читателей нашего блога:
Как подключить прокси для андроид — установить без рута
Владельцы смартфонов и планшетных ПК под управлением операционной системы часто интересуются вопросом, как настроить прокси-сервер на андроид. Интернетом пользуются все, и иногда возникает необходимость использования данной технологии, но не каждый знает, можно ли активировать прокси-сервер на андроид и каким образом это сделать.
Что такое прокси-сервер и для чего он нужен
Прокси-сервер — это программное средство, которое является промежуточным звеном связи между клиентами той или иной Сети. Оно способно принимать и перенаправлять через свой IP-адрес запросы клиентов на некоторый принимающий сервер или станцию. Если говорить про Интернет, то это средство, позволяющее получать доступ к Глобальной сети через определенный сервер.
Прокси для андроид работают по аналогии с ПК-версией
Возможности применения этого сервера достаточно велики. Он позволяет:
Важно! Использование прокси — это удобно, но нужно быть внимательным. Владелец сервиса практически полностью контролирует работу клиента, видит все его запросы и может даже изменять их при желании.
Устанавливать proxy-server можно вручную
Как включить и отключить прокси на андроиде
Включение и выключение прокси-сервера на андроиде выполняется параллельно с его настройкой. Сделать это можно различными способами, которые делятся на два типа: с использованием привилегий суперпользователя и без использования root-доступа.
Как такового стандартного прокси-сервера на андроиде нет. Все дело в том, что это, как правило, удаленная машина, к которой нужно просто подключиться по специальному адресу и перенаправлять все свои запросы на нее. В результате данные, получаемые пользователем, также будут приходить не с базового сервера, на который они были отправлены, а со специальной службы прокси.
Отключение прокси-соединения происходит аналогичным включению образом, и никаких сложностей тут не наблюдается. Выполнить деактивацию прокси можно, просто вернув настройки телефона в прежнее состояние. Если все конфигурировалось в веб-браузере, то следует восстановить параметры в нем.
Обратите внимание! Для большего удобства необходимо настраивать программы так, чтобы в любой момент можно было вернуть изначальные конфигурации, включить и выключить прокси-соединение.
Интерфейс Proxy Droid
Как настроить прокси на андроид-устройстве
Пора приступать к рассмотрению вопроса о настройке прокси для Android. Выполнить эту процедуру можно различными способами, которые включают в себя использование стороннего ПО, стандартные методы, варианты с использованием и без рут-прав.
Стандартными средствами без использования стороннего ПО
Если не брать в расчет приложения, то самостоятельная настройка прокси выполняется в настройках Wi-Fi-соединения. Для этого необходимо:
Используя стороннее ПО
Одно из самых популярных приложений на андроид по данной тематике — ProxyDroid. Оно доступно совершенно бесплатно в официальном магазине Плей Маркет и обладает русской версией, что, безусловно, является плюсом использования. Оно позволяет полностью перейти на прокси или указать ресурсы, вход на которые будет происходить через сервис. Среди доступных методов авторизации заметно выделяются HTTPS и SOCKS 4/5, полностью поддерживаемые программой.
Важно! Приложение, несмотря на все свои преимущества, обладает существенным недостатком. Нормально функционировать оно может лишь в том случае, когда на телефоне есть привилегии суперпользователя.
Настройка сети Wi-Fi
Без использования root
Есть программы, которые работают с SOCKS5 и прочими прокси и без рут-прав. В качестве примера Drony и SandroProxy. Их также очень легко настроить на использование сервисов по пересылке запросов. Достаточно указать рабочую сеть Wi-Fi, ввести адрес или имя принимающего сервера, тип прокси и порт.
Настройка с правами суперпользователя
Если у пользователя имеются соответствующие привилегии, то на его телефоне или планшете открыто гораздо больше возможностей для настройки прокси-соединения. Только рутированным телефон сможет работать с подобным подключением в полной мере. Root позволяет установить любую программу для соединения с Сетью и использовать ее возможность по максимуму.
Обратите внимание! Стандартный способ с настройкой беспроводной Сети в данном случае также прекрасно работает.
Что такое имя хоста прокси сервера и как его узнать
Имя хоста прокси-сервера — это то же самое, что и адрес этого сервера. По нему осуществляется доступ к сервису, и он указывается самым первым в настройках любой программы или в параметрах самого телефона. Несмотря на то, что его нужно вводить в формате proxy.example.com, он также может быть записан в виде IP-адреса, но не включать в себя номер порта. Брать имя хоста нужно на специальных сервисах, предоставляющих бесплатные и платные прокси.
Не стоит забывать указывать приставку к адресу в виде порта
Proxy — мощный инструмент, позволяющий повышать анонимность нахождения в Глобальной сети и обходить некоторые запреты, связанные с блокировками некоторых ресурсов. Настраивается он очень просто даже на телефонах.