Web сервер на android

Web сервер на android

Содержание статьи

Описанные шаги производились на смартфоне возрастом пять лет с Android 4.4. Если твой смартфон еще старше — будь готов к тому, что гайд для него не подойдет (например, из-за отсутствия поддержки LineageOS или использованных в статье утилит). Да, жизнь жестока.

Подготовка

Для начала выполним несколько подготовительных шагов.

Чистим смартфон

Первое, что нам необходимо сделать, — это очистить аппарат от мусора. Удаляем все файлы с карты памяти (внутренней и съемной), а затем делаем сброс до заводских настроек (Настройки → Восстановление и сброс → Сброс настроек). Это нужно, чтобы избавиться от установленных приложений, которые тоже могут висеть в памяти и жрать оперативку.

Также настоятельно рекомендую установить на смартфон LineageOS, а поверх нее пакет gapps-pico. Так ты получишь смартфон с доступом к маркету, но без огромного количества блоата, который так любят предустанавливать производители и Google.

После регистрации в Google сразу отключи все виды синхронизации, перейдя в «Настройки → Аккаунты → Google». На сервере от этой синхронизации никакого прока, она будет только мешать. Функции пробуждения при получении уведомления и always on display, а также светодиодный индикатор тоже не нужны. Перейди в «Настройки → Приложения» и отключи весь софт, который возможно отключить. Email, браузер, службы Exchange — все это нам не нужно.

В результате у тебя окажется система, которая по минимуму использует оперативку и не держит в памяти ненужные приложения и службы, — голый и урезанный со всех сторон смартфон. Нелишним будет получить права root. Большинство описанных в статье серверов их не требуют, но они понадобятся, если ты захочешь иметь нормальную командную строку с набором утилит Linux и полный контроль над сервером.

SSH и BusyBox

Android построен на ядре Linux, что для нас большой плюс: Linux прекрасно оптимизирован для серверов. Однако вся остальная часть системы сильно отличается от типичных дистрибутивов Linux. Здесь нет многих стандартных для Linux команд, к Android нельзя подключиться по SSH, системы контроля сетевых служб тоже как бы нет (есть местный init, но это вещь в себе).

Чтобы это исправить, установим BusyBox и SSH-сервер. Первый представляет собой минималистичный комплект стандартных утилит командной строки Linux, второй понятно что. Для установки BusyBox воспользуемся приложением BusyBox On Rails. Все предельно просто: запускаем приложение, кликаем несколько кнопок, соглашаемся предоставить права root — готово.

На роль SSH-сервера отлично подойдет SimpleSSHD. Внутри это SSH-сервер Dropbear для встраиваемых устройств, снабженный графическим интерфейсом. Устанавливаем, запускаем, переходим в настройки, отмечаем галочкой опцию Start on Boot, возвращаемся назад и нажимаем кнопку Start.

SimpleSSHD выведет на экран IP-адрес, порт по умолчанию 2222. Подключиться к нему из Linux можно так:

При подключении на экране смартфона появится одноразовый пароль, который следует указать в приглашении клиента. Это очень безопасный, но не очень удобный способ аутентификации, поэтому рекомендую использовать аутентификацию по ключам. Просто переименуй свой открытый ключ ( id_rsa.pub ) в authorized_keys и положи в каталог ssh на карте памяти.

Сразу после подключения к серверу выполни команду su , чтобы SimpleSSHD запросил права root на смартфоне. Подтверди права и не забудь поставить галочку «Больше не спрашивать» (в LineageOS) или сними галочку «Спросить снова» (SuperSU). Это нужно, чтобы в будущем ты мог в любой момент получить root без всяких запросов со стороны Android.

Bash, nano, tmux, mc

BusyBox содержит только базовый набор утилит командной строки, многие из которых к тому же имеют сильно урезанную функциональность. В BusyBox нет ни bash, ни вменяемых консольных редакторов (Vi в расчет не берем, это не Vim), ни mc и tmux, без которых многие админы не представляют себе жизни.

Если тебе все это нужно, придется установить утилиты самостоятельно. Правильный способ это сделать — скачать компилятор Linaro, исходники утилит и собрать их самому. Быстрый способ — выдрать из уже имеющегося приложения, например из Terminal IDE.

Читайте также:  Бателфилд 1 не запускается на windows 10

Скачиваем Terminal IDE, переименовываем пакет APK в ZIP, распаковываем, находим файл assets/system-2.0.tar.gz.mp3 , переименовываем, убирая расширение mp3, и вновь распаковываем. Внутри будет множество каталогов и файлов, из которых нас интересуют только system/bin и system/etc/terminfo . Первый содержит нужные нам утилиты; просто скопируй те, что тебе пригодятся, в отдельный каталог. Второй необходим для их корректного функционирования.

Выбранные утилиты и каталог terminfo скинь на карту памяти смартфона. Затем подключись к нему по SSH и введи следующие команды, чтобы получить возможность модификации системного каталога:

Далее скопируй все нужные утилиты в /system/xbin/ и установи на них бит исполнения (на примере bash):

Затем создай файл /sdcard/ssh/.bashrc , помести в него следующие строки:

Открой настройки SimpleSSHD на смартфоне и в опции Login Shell укажи /system/xbin/bash , останови и вновь запусти сервер. При следующем входе по SSH откроется bash и будут доступны скопированные тобой утилиты.

Чтобы добиться корректной работы Vim и mc, скопируй на карту памяти также каталоги etc/mc и etc/vim , а в файл /sdcard/ssh/.bashrc добавь строки

WARNING

Если сразу после логина вместо имени пользователя и хоста ты видишь -bash-4.2$ , запусти bash повторно. Такая ошибка возникает из-за проблем с автоматическим определением домашнего каталога.

Отключаем энергосбережение

Как и любая другая мобильная ОС, Android всеми силами старается сберечь энергию. Поэтому сразу после отключения экрана он как можно скорее переводит смартфон в режим suspend, при котором прекращается/снижается подача питания не только на экран, но и на сам процессор (аналог suspend to ram в компах).

Нам такое поведение будет только мешать, поэтому его следует отключить. Для этого активируем так называемый wakelock, который заставит систему не переходить в режим suspend:

Wakelock будет оставаться активным, пока жива система, но после перезагрузки его придется активировать снова. В прошивках, основанных на LineageOS/CyanogenMod, это можно автоматизировать. Создай файл со следующим содержимым:

И скопируй его в каталог /system/etc/init.d .

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

16 октября 2013

Новые модели смартфонов и планшетов, а также версии операционной системы Android сменяют друг друга так быстро, что у многих любителей электронных гаджетов скопилась приличная коллекция вполне работоспособных и полностью исправных аппаратов, которые, к сожалению, уже морально устарели. Конечно, их можно по дешёвке продать или подарить, но есть и другое решение, способное дать всем этим устройствам вторую жизнь. Их все можно превратить в серверы различного назначения – да-да, в серверы!

Не удивляйтесь, ведь по производительности практически любые смартфоны и планшеты на базе операционной системы Android могут легко поспорить с самыми настоящими «взрослыми» серверами всего лишь десятилетней давности. Единственное условие – вы должны обладать правами администратора, то есть «сделать root» на таком устройстве. Существуют различные программы для получения прав root, к тому же процедуры для разных аппаратов могут различаться, поэтому рекомендуем поискать информацию по вашей конкретной модели в интернете.

В какой же именно сервер можно превратить смартфон или планшет? Практически в любой, но проще всего на базе операционной системы Android организовать серверы трёх типов: веб-сервер, файловый или FTP-сервер и медиасервер.

Веб-сервер – это то, куда вы зашли, открыв эту страницу – как и любую другую страницу в интернете. Для создания веб-сервера, работающего по протоколу HTTP, требуется минимум вычислительной мощности, так что для этого подойдёт даже весьма старый смартфон или планшет. Вы можете организовать как полноценный веб-сервер, доступный через интернет, так и просто локальный HTTP-сервер, видимый только в домашней сети и предназначенный, к примеру, для отладки работы сайтов перед размещением их на профессиональном хостинге. При этом, несмотря на низкие аппаратные требования, для правильной настройки веб-сервера требуются некоторые специальные знания, поэтому для неподготовленного пользователя это может оказаться весьма непростой задачей.

Читайте также:  Mikrotik закрыть 53 порт

Файловый сервер – это хранилище файлов, доступное в сети посредством, как правило, протокола 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.

Читайте также:  Msi z370 a pro windows 7

Программа 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 в веб-сервер

Расскажу, как построить на любом устройстве с Android простейший веб-сервер.

Шаг 1: Установите Tiny Web Server для Android.

Для Android доступны различные серверные программные приложения. Однако многие из них устарели и предназначены для более старых версий ОС (например, PAW Server).

Мы используем Tiny Web Server. С помощью этого приложения мы загрузим базовый файл index.html и перейдем к нему с компьютера в той же сети, чтобы проиллюстрировать использование Android в качестве веб-сервера.

Скачать: Tiny Web Server для Android (бесплатно)

Шаг 2: Настройка Tiny Web Server

Этот инструмент позволяет очень просто передавать контент с телефона и получать удаленный доступ к файлам. Например, можно просматривать содержимое памяти телефона с помощью веб-браузера компьютера, если оба устройства находятся в одной и той же сети.

Из-за этой простоты нет возможности настройки Tiny Web Server. Это означает, что вы не можете заставить его использовать файл index.html по умолчанию. Тем не менее, это незначительное неудобство.

После установки Tiny Web Server запустите приложение. На главном экране у вас есть опция Изменить путь к серверу, которая полезна, если вы хотите указать каталог для хранения ваших веб-файлов.

Вы также можете указать кодовую страницу по умолчанию (полезна, если вы не размещаете англоязычный сайт) или порт сервера.

Шаг 3: Добавить Index.html на Tiny Web Server

Чтобы использовать Tiny Web Server для обслуживания веб-страниц, вам необходимо создать файл index.html и загрузить его в нужную папку. Это делается на компьютере с помощью текстового редактора типа Notepad+++.

Скопируйте файл в предпочитаемый каталог (через USB-порт или файловый менеджер Android) на устройство в /storage/emulated/0.

Скопировав файл на Android, откройте Tiny Web Server и нажмите Запустить сервер. Перейдите в браузере на URL-адрес по умолчанию, добавив /index.html в конец страницы.

Поздравляю, вы превратили ваше Android устройство в простой веб-сервер!

Спасибо, что читаете! Подписывайтесь на мой канал в Telegram и Яндекс.Дзен. Только там последние обновления блога и новости мира информационных технологий. Также, читайте меня в социальных сетях: Facebook, Twitter, VK, OK.

Респект за пост! Спасибо за работу!

Хотите больше постов? Узнавать новости технологий? Читать обзоры на гаджеты? Для всего этого, а также для продвижения сайта, покупки нового дизайна и оплаты хостинга, мне необходима помощь от вас, преданные и благодарные читатели. Подробнее о донатах читайте на специальной странице.

Спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.

Ссылка на основную публикацию
Adblock detector