- What’s the best way to turn an Android device into Linux server?
- 2 Answers 2
- Русские Блоги
- Ничего не говори, давай сначала посмотрим, как это работает?
- Какие материалы и оборудование нужны?
- корневой телефон
- Примечание
- Я могу рутировать телефон
- Я не могу рутировать свой телефон
- Установите систему Linux для телефона Android
- Превращаем старый телефон на Android в веб-сервер
- 1. Установка Termux
- 2. Настройка SSH
- 3. Настраиваем статический IP-адрес на Android
- 4. Установка Ruby, Bundler, Sinatra и Puma
- Установка nginx
- Настройка переадресации портов
- Настройка динамического DNS
- Hello world!
- Под осадой
- Эпилог: безопасность
What’s the best way to turn an Android device into Linux server?
Depending on your definition of Linux, this would be very phone specific and unlikely to run any «standard» Linux distro without Android. Android uses the Linux kernel, and a lot of Linux bits, but overlays that with Android functionality which can’t easily be stripped out of the phone — and indeed any attempts to do this will depend entirely on the make and model of the phone.
2 Answers 2
Since Android IS Linux you can use the existing Android configured by your carrier/manufacturer to to run Linux applications. The other approach is to replace the entire OS on the device and this is heavily dependent on the device. Not because compatibility with the CPU or even drivers is a big issue but because carriers lock down features of the device and the boot loader process is extremely convoluted on android devices as well as the need for a image or «rom» to install the distribution as well as a way to flash it to the device all of which are things that are specific to the device and may be locked by the carrier.
You can use an app called Linux Deploy to install a chrooted Debian distribution. But this will use the Linux kernel provided by the Android OS itself. https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy
I disagree that Android is Linux — arstechnica.com/gadgets/2009/02/… Also — Linus Torvalds classified Android as a Linux Fork — youtube.com/watch?v=duDC_u4ydVo — but I acknowledge that this is arguable.
Русские Блоги
После потери статуса студента цена покупки облачных серверов становилась все дороже, будь то Alibaba Cloud или Tencent Cloud. Мне было интересно, смогу ли я найти какие-нибудь альтернативы, которые напомнили мне о том, что я случайно видел раньше, которые могут превратить телефоны Android в Linux. Если сотрудничать с предыдущей статьей (ниже), то она просто криво.
Ответ за кулисами:Подержанный сотовый телефонПолучите программное обеспечение, необходимое для этой статьи
Ничего не говори, давай сначала посмотрим, как это работает?
Три обязательных программного обеспечения
Запустить телефон Linux
Подключитесь к командной строке Linux через сок ssh и запустите оператор вывода python.
Подключить телефон Linux в iPad
Компьютер также можно подключить через локальную сеть, поэтому здесь нет примера.
Какие материалы и оборудование нужны?
- Телефоны Android, которые можно использовать на экране
- Программное обеспечение приложения: развертывание Linux, busybox, сок ssh
- Напоследок нужно обратить внимание на официальный аккаунт: zone7 Follow me toss
Что делать, если у вас нет старого телефона Android, но вы хотите выбросить его? Рекомендуется покупать подержанный Mi 5 в Xianyu. Почему мы рекомендуем Mi 5? Во-первых, Xiaomi Mi 5 находится в производстве уже некоторое время, поэтому вы можете купить его за двести-триста юаней, и он имеет функцию NFC, которую можно использовать как карту метро или карту доступа.
корневой телефон
Во-первых, есть два способа настроить телефон как сервер Linux. Во-первых, Сюй необходимо получить root-права на свой мобильный телефон, который становится более мощным после рутирования, а во-вторых, он не может получить root-права для своего мобильного телефона. Это кастрированная версия, в зависимости от вашего выбора.
Примечание
Обязательно используйте выброшенный мобильный телефон для экспериментов, потому что для рутирования мобильного телефона необходимо очистить данные телефона.
Я могу рутировать телефон
Я предоставляю рут-метод для Xiaomi и Huawei. Найдите другие модели самостоятельно.
Я не могу рутировать свой телефон
Если вы не можете рутировать свой телефон, вот альтернативные продукты. termux — это приложение, которое может устанавливать Linux на мобильные телефоны без рутирования, но многие команды Linux недоступны, и по-прежнему можно запустить командную строку python.
Установите систему Linux для телефона Android
На данный момент я предполагаю, что вы по умолчанию рутировали свой телефон Android. Сначала установите три приложения, показанные на скриншоте выше,
- Развертывание Linux: для загрузки Linux требуются права root.
- Juice ssh: приложение для мобильного терминала.
- BusyBox: разверните команды мобильного телефона Android, потому что после установки Linux многие команды Linux будут недоступны, и требуются права root.
Juice ssh и BusyBox очень просты, поэтому я не буду их здесь повторять, за исключением того, что мне нужно поговорить о развертывании Linux.
http://chinanet.mirrors.ustc.edu.cn/centos-altarch/
базовая конфигурация
Отображение отладочной информации
Откройте SSH, внешний мир может подключиться
Измените версию прически Linux, выберите ту, которая вам нравится
После настройки это установка. Это займет полчаса. Терпеливо ждите. Подождите, пока вы увидите:
На этом установка завершена. Если не удалось, попробуйте еще несколько раз или измените версию выпуска. Вы получили чувство выполненного долга, не так ли?
Превращаем старый телефон на Android в веб-сервер
Есть ли у вас старый телефон на Android? Наверняка есть! В мире накопилось безумное количество всевозможного электронного мусора, и в среднем гражданин развитой страны меняет телефон каждую пару лет, поэтому старые телефоны, вероятно, один из самых распространённых видов электронных отходов.
У меня залежался собиравший пыль старый Motorola G5 Cedric, поэтому я решил сделать с ним что-нибудь, и теперь на нём работает веб-сервер Puma с простым веб-приложением на Sinatra.
Возможно, вы зададитесь вопросом: в чём реальная, практическая польза всего этого? Производительность старого телефона на Android, наверно, не будет особо высокой, впрочем, как и у всех этих t2.nano . Я пока не разворачивал на Android никакого «реального» кода, но даже у дешёвых и старых телефонов сегодня есть четырёхъядерные или даже восьмиядерные ЦП, не менее 2 ГБ ОЗУ, поэтому, теоретически, телефон должен быть близок (хотя бы примерно) к самым скромным облачным решениям IaaS (например, у t2.nano всего 512 МБ). Разумеется, в телефоне стоит процессор ARM, а в IaaS обычно установлены x86; управление памятью тоже совершенно различается, но тем не менее, мы ведь говорим о приблизительном сравнении.
Как бы то ни было, в этой статье я приведу краткий туториал по превращению устройства на Android в веб-сервер, или даже в любое количество других устройств.
1. Установка Termux
Первым делом нужно настроить в телефоне окружение Linux. Termux — это эмулятор терминала и окружение Linux для Android. Его можно установить из Google Play Store. После установки не требуется никакая дополнительная настройка.
2. Настройка SSH
На крошечном сенсорном экране вводить кучу команд неудобно, поэтому давайте настроим ssh, чтобы можно было входить в Termux удалённо.
Существует множество способов сделать это, но мне кажется, проще всего использовать ПО Dropbear:
Выполните на Android следующие команды:
pkg upgrade pkg install dropbear
Можно использовать парольную аутентификацию или аутентификацию публичным ключом. Вам следует использовать аутентификацию ключом, но для тестирования больше подходит пароль.
Выполните на Android следующие команды:
passwd New password: Retype new password: New password was successfully set.
Бонусные очки: установите мультиплексор терминалов, например, tmux или screen . Это сильно упростит вашу жизнь при выполнении команд через ssh:
Теперь протестируем подключение на настольном компьютере:
ssh android-ip-address -p 8022
3. Настраиваем статический IP-адрес на Android
Зайдите в настройки WiFi, отключите DHCP и назначьте телефону IP-адрес.
Это необходимо, чтобы ваш роутер каждые несколько часов/дней не назначал телефону новый IP-адрес, что сильно бы усложнило бы конфигурирование.
4. Установка Ruby, Bundler, Sinatra и Puma
Sinatra — это легковесный фреймворк веб-приложений, а Puma — веб-сервер.
Разумеется, Sinatra и Puma — это лишь моё предложение, вы вполне можете использовать на телефоне полнофункциональные Rails, как написано в этом качественном туториале. Только не используйте WEBRick — находящийся в разработке веб-сервер Rails по умолчанию; он однопроцессный, однопоточный, а потому не подходит для продакшена (но вполне хорош для небольших экспериментов).
Выполните на Android следующие команды:
pkg install ruby gem install sinatra puma
Установка nginx
nginx — это веб-сервер, обратный прокси-сервер и балансировщик нагрузки. Хотя он наиболее полезен в многосерверных системах, где используется для распределения запросов по разным инстансам, в нашей системе его тоже будет полезно использовать из-за встроенной защиты от DDoS и статического обслуживания файлов.
Выполните на Android следующую команду:
Теперь немного сложная часть, мы будем настраивать nginx для работы с Puma. Неплохим началом может быть этот gist — скопипастите nginx.conf и смените appdir на корневой каталог вашего веб-приложения. Например, в моём случае это будет /data/data/com.termux/files/home/android-sinatra .
Настройка переадресации портов
Вероятно, вы захотите, чтобы ваш веб-сервер был доступен через Интернет, поэтому необходимо настроить в роутере переадресацию портов, чтобы перенаправлять входящие запросы к вашему публичному IP-адресу на новый веб-сервер на Android.
Этот процесс зависит от конкретной модели роутера. Здесь представлен неплохой вводный туториал.
Настройка динамического DNS
У большинства людей публичные IP-адреса являются динамическими. В таких случаях полезно настроить сервис динамического DNS (DDNS), предоставляющий статическое доменное имя, автоматически выполняющее перенаправление на текущий публичный IP-адрес.
Сегодня есть несколько бесплатных сервисов, предоставляющих DDNS; я пользуюсь no-ip и пока меня он вполне устраивает. Однако каждый месяц нужно «обновлять» свой домен.
После настройки DDNS необходимо настроить и свой роутер, чтобы он периодически уведомлял сервис DDNS о текущем IP-адресе. Этот процесс тоже зависит от модели роутера.
Hello world!
Puma и nginx, запущенные на Motorola G5.
Под осадой
Вы можете имитировать реальное использование сервера при помощи ПО для тестирования http-нагрузки siege . Ниже показан скриншот siege , запущенного для моей системы с тремя одновременными пользователями (при реальных тестах используются более серьёзные значения):
На переднем плане работает siege; на фоновых терминалах логи nginx.
Числа на скриншоте не особо важны, поскольку наше веб-приложение передаёт простой стосимвольный ответ с меткой времени, но этого достаточно, чтобы понять, что сервер может справляться хотя бы с несколькими одновременными пользователями.
Эпилог: безопасность
Если вы смотрели сериал «Мистер Робот», то знаете, что Интернет может быть опасным местом. И это ещё более справедливо, если у вас есть открытый в Интернет веб-сервер.
Всего за несколько часов после открытия сервера на него уже залезли всевозможные штуки. Большинство было безобидными индексирующими роботами, но некоторые точно не такие хорошие, например, эти два запроса:
Большинство из этих запросов кажется нормальным, но два красных — это, скорее всего, какая-то атака.
То есть вывод здесь такой: обновляйте всё ПО, следите за логами доступа и, возможно, изучите руководства по безопасности nginx, например, это и это.