Перетворіть свій телефон Android на маленький кишеньковий Linux-сервер Це одна з тих ідей, яка спочатку звучить дивно… доки ви її не спробуєте. Сучасні телефони мають більш ніж достатньо потужності, щоб запустити повноцінний дистрибутив із мережевими службами, веб-сервером і навіть легким графічним робочим столом, не жертвуючи Android і не наражаючи на ризик ваші дані.
За допомогою кількох програм, таких як Розгортання Linux, Termux, UserLAND, Andronix, VNC або XServer XSDLВи можете переробити старий мобільний телефон або планшет і дати йому друге життя як міні-домашній сервер, середовище тестування або портативну лабораторію безпеки. Цей посібник детально покаже вам, як все це працює, що вам потрібно, як це встановити та що ви можете робити з Linux, що працює всередині Android.
Чому варто встановити Linux на телефон Android?
Android чудово підходить для щоденного використання, але коли вам потрібен... повне середовище GNU/Linux Для програмування, налаштування серверів або роботи з класичним середовищем робочого столу він не підходить. Якщо у вас є телефон або планшет, яким ви майже не користуєтеся, встановлення на нього дистрибутива Linux — чудовий спосіб використовувати його та запобігти його забуттю в шухляді.
Найпоширеніші мотивації пов'язані з виконанням Ексклюзивне програмне забезпечення для LinuxВи можете тестувати мережеві сервіси (Apache, Nginx, SSH, бази даних), створити невелику лабораторію безпеки або мати машину для розробки, доступну через SSH з будь-якого місця. Зрештою, ви поєднуєте найкраще з обох світів: Android як основну систему та Linux як гостьову, що працюють паралельно.
Крім того, знання, які ви отримуєте, налаштовуючи та підтримуючи дистрибутив на своєму мобільному пристрої, це Чисте золото, якщо ви вивчаєте системи, розробку чи кібербезпекуВи можете ламати речі в середовищі Linux, не боячись пошкодити Android, оскільки система інкапсульована в образ або окремий chroot/PROot.
Ще один ключовий момент полягає в тому, що багато рішень працюють. немає потреби в кореніЗавдяки таким технологіям, як PROoot, які імітують поведінку chroot, але в просторі користувача, ви можете імітувати досить повне файлове дерево Linux, встановлювати пакети та працювати майже як на звичайному сервері, без розблокування пристрою.
Чи може ваш пристрій Android безперебійно працювати з Linux?
Практично будь-який відносно сучасний пристрій Android може його запускати. якась форма LinuxОднак, досвід роботи значною мірою залежатиме від оперативної пам’яті, вільного місця для зберігання та наявності root-доступу. Навіть старіші телефони можуть працювати на легких дистрибутивах, якщо ви відмовитеся від важких середовищ робочого столу, таких як GNOME або KDE.
Як розумне посилання для невеликого веб-сервер без графічного середовищаРекомендується мати щонайменше 2 ГБ оперативної пам'яті, близько 5 ГБ вільного місця (внутрішнього або на швидкій карті microSD) та стабільне з'єднання Wi-Fi для завантаження образу дистрибутива та керування системою через мережу. Чим більше ресурсів має ваш пристрій, тим краще.
Якщо ваша ідея полягає у використанні робочого столу Linux з X11 або WaylandДуже корисно мати клавіатуру та мишу (Bluetooth або OTG) та, якщо ваш телефон дозволяє, відеовихід на монітор або телевізор. Вони не є обов'язковими, але значно покращують враження порівняно з використанням лише сенсорного екрана.
Вам також доведеться вирішити, чи хочете ви кореневий термінал Або ж ви можете віддати перевагу залишити його без root-доступу. З root-доступом у вас є справжній chroot, Linux Deploy у всій його красі та дуже детальний контроль системи. Без root-доступу вам доведеться покладатися на Prooot з Andronix, UserLAnd, AnLinux та подібними інструментами, яких цілком достатньо для легкого сервера або віддаленого робочого столу.
Як правило, для базового веб-сервера вам потрібен лише один середовище без графічного інтерфейсущо споживатиме менше пам'яті та заряду акумулятора, а також забезпечить низьку температуру телефону. Якщо ви хочете поекспериментувати з робочими середовищами, такими як LXDE або XFCE, краще використовувати трохи потужніший пристрій.
Як працює Linux на Android: chroot, PROot та графічні сервери?
Коли ми говоримо про «встановлення Linux на Android», ми насправді не заміна Androidале шляхом запуску Linux всередині нього. Ніяких перепрошивок ПЗП чи втручань у завантажувач: ці рішення створюють файлову систему Linux та монтують її як гостьове середовище.
Якщо пристрій має root-доступ, класичний інструмент — chrootЗа допомогою chroot ви змінюєте кореневий каталог, який бачить процес та його дочірні процеси, щоб вони бачили лише дерево каталогів гостьового дистрибутива. Для цього потрібен root-доступ, тому він не ввімкнений за замовчуванням на Android.
У сценаріях без root-права головний герой PROotЦя утиліта імітує деяку поведінку chroot з простору користувача, перетворюючи системні виклики таким чином, щоб виглядало так, ніби процес працює в іншому кореневому каталозі, навіть якщо він залишається звичайним користувачем Android. Вона є основою багатьох рішень, таких як Andronix, AnLinux та UserLAnd.
Іншою серйозною проблемою є графіка. Для робочого столу Linux потрібен сервер X або WaylandОднак цей сервер не може безпосередньо взаємодіяти з графічним обладнанням Android, як це було б на ПК. Тому використовуються дві широко використовувані стратегії: VNC та виділені X-сервери для Android.
Перша стратегія полягає в тому, щоб розпочати VNC-сервер у дистрибутиві та підключитися з програми перегляду VNC для Android (VNC Viewer, bVNC тощо) до локального хоста. Те, що ви бачите на екрані, – це віддалений робочий стіл, який фактично працює на самому телефоні. Простий та дуже сумісний, хоча й з дещо обмеженою продуктивністю.
Другий спосіб — використовувати X-сервер, розроблений для Android, наприклад, Xserver xsdlУ цьому випадку графічний сервер працює як додаток для Android, а дистрибутив Linux діє як X-клієнт, підключаючись до нього. Зазвичай він пропонує кращу продуктивність, ніж чистий VNC, але вимагає додаткового налаштування (змінні DISPLAY, порти тощо).
Не root-опції: PROot на допомогу
Якщо ви не хочете рутувати свій пристрій або розблоковувати завантажувач, існує кілька програм, які можуть завантажувати повні дистрибутиви за допомогою... Корінь у просторі користувачаСистема Android залишається недоторканою, а Linux інкапсульований, ніби це гігантський контейнер.

Andronix + Termux + VNC Viewer
Дуже популярне поєднання - це змішування Andronix, Termux та програма для перегляду VNCTermux надає розширений термінал та його репозиторії, тоді як Andronix керує завантаженням та встановленням дистрибутива в середовищі PROot.
Типовий процес простий: ви встановлюєте Andronix, Termux та VNC-переглядачУ Andronix ви обираєте потрібний дистрибутив (Ubuntu, Debian, Manjaro, Kali тощо) та середовище робочого столу (XFCE, LXDE…), копіюєте команду, яку генерує програма, вставляєте її в Termux та чекаєте, поки файлова система завантажиться та розпакується.
Зрештою, ви налаштовуєте Пароль та роздільна здатність VNCВи запускаєте графічний сервер із сеансу Linux та підключаєтеся за допомогою VNC Viewer до чогось на кшталт localhost:1. З'являється справжній робочий стіл Linux, що рухається всередині мобільного пристрою, доступний через термінал та графічний інтерфейс без дотику до кореневого доступу.
Інші альтернативи без root-прав: UserLAND, AnLinux, Debian Noroot…
Окрім Andronix, існує ціла екосистема додатків, заснованих на Pro для повних дистрибутивів без прав адміністратора. Кожен з них має свої особливості, але всі вони мають ту саму загальну ідею.
UserLAnd Це один із найзручніших у використанні варіантів з відкритим вихідним кодом. Він дозволяє розгортати Debian, Ubuntu, Arch, Kali або Alpine та пропонує як робочий стіл (LXDE, XFCE4), так і встановлення окремих програм, наприклад, лише Firefox або LibreOffice замість цілої системи.
Його інтерфейс організований у розділи Програми, сесії та файлові системиУ розділі «Програми» ви обираєте, що встановлювати; у розділі «Сесії» ви керуєте активними підключеннями (VNC, SSH, XSDL); а у розділі «Файлові системи» ви бачите створений вами кореневий каталог Linux. Це дозволяє вам мати кілька сесій з однією інсталяцією, використовуючи різні методи доступу.
AnLinux Він працює аналогічно, значною мірою покладаючись на Termux. Додаток генерує скрипти, які запускаються в Termux для встановлення Ubuntu, Debian, Fedora, CentOS, openSUSE або Kali в середовищі Proot. Він також пропонує легкі робочі столи, такі як XFCE4, MATE, LXQt або LXDE, ідеальні для мобільних пристроїв з обмеженою оперативною пам'яттю.
Debian Noroot Це практично: завантажує легку систему Debian без root-прав на Android 4.1 або вище. Вона менш гнучка, а продуктивність не вражає, але встановлення дуже просте, якщо ви просто хочете спробувати Debian без особливих проблем.
Встановлення Linux з root-доступом за допомогою Linux Deploy
Коли пристрій рутується, це відкриває двері до потужніших рішень, і ось тут королева. Розгортання LinuxЦя програма використовує chroot разом з BusyBox для встановлення Debian, Ubuntu, Arch, Fedora та інших дистрибутивів безпосередньо на пам'ять телефону, зі значним контролем над тим, як вони монтуються та завантажуються.
З часом Linux Deploy набув популярності. кращі інтерфейси, профілі та опціїСьогодні він дозволяє вибрати дистрибутив, тип інсталяції, файлову систему, вмикати або вимикати графічний інтерфейс, визначати власні сценарії завантаження та вмикати автоматичний запуск під час перезавантаження мобільного пристрою.
Основні вимоги для розгортання Linux
Перш за все, вам потрібна Android з root-правами та оновленим BusyBoxBusyBox надає багато утиліт Unix, які Linux Deploy використовує внутрішньо для керування chroot. Встановіть їх з надійного джерела, надайте їм права суперкористувача та перевірте правильність налаштувань.
Вам також знадобиться VNC-переглядач для Androidнаприклад, VNC Viewer, який є безкоштовним і дуже добре працює для підключення до графічного робочого столу встановленого дистрибутива. Хоча Linux Deploy також пропонує режим X11, VNC зазвичай є найпростішою точкою входу.
Щодо сумісності з Android, Linux Deploy вказує на підтримку з боку Android 2.3.3Однак на такому старому обладнанні робота зазвичай досить погана. В ідеалі вам знадобиться відносно сучасний пристрій з принаймні 1 ГБ оперативної пам'яті, кількома гігабайтами вільного місця (внутрішнього або на швидкій карті microSD) та пристойним з'єднанням для передачі даних, оскільки вам потрібно буде завантажити образи ARM розміром кілька сотень мегабайт або навіть кілька гігабайт.
Налаштування розподілу, сховища та графічного інтерфейсу
Коли ви відкриєте Linux Deploy, ви побачите головний екран із кнопками для Пуск/Стоп і значок налаштувань Внизу. Там ви отримуєте доступ до властивостей інсталяції, де ви вирішуєте, який дистрибутив Linux встановлювати та як це зробити.
У цьому розділі ви можете вибрати дистрибутиви (Debian, Ubuntu, Arch, Fedora…)Архітектура (arm, arm64, armhf, armel тощо) та шлях до файлової системи необхідні як для завантаження, так і для остаточного образу. Важливо вибрати архітектуру, яку фактично використовує ваш процесор, щоб уникнути незвичайних помилок під час встановлення.
Найпоширеніший тип встановлення – це «файл зображенняЦе означає, що Linux буде розміщено в одному файлі у форматі EXT2, EXT4 або іншому. Для більшості користувачів це найпростіший варіант порівняно з використанням виділених розділів, які потребують більшої кваліфікації.
Нижче ви можете вибрати тип файлової системи (EXT2 зазвичай працює добре) та вирішіть, чи зберігати зображення у внутрішній пам’яті, чи на картці microSD. Якщо SD-карта хорошої якості, це практичний спосіб уникнути заповнення основної пам’яті телефону.
У розділі графічного інтерфейсу ви можете увімкнути або вимкнути графічний інтерфейсЯкщо ви ввімкнете цю функцію, Linux Deploy підготує легке середовище робочого столу та налаштує доступ VNC. Там ви також виберете середовище для встановлення (LXDE, XFCE тощо), а також ім'я користувача та пароль для графічного сеансу.
Встановлення та завантаження дистрибутива за допомогою Linux Deploy
Як тільки ви налаштуєте потрібні вам налаштування, час запустити розподільна установкаУ меню у верхньому правому куті ви знайдете опцію «Встановити», яка розпочне завантаження та налаштування образу.
Цей процес може тривати від кількох хвилин до півгодини або більше, залежно від вашого інтернет-з’єднання та потужності вашого пристрою. Протягом цього часу базова система завантажується, розпаковується, налаштовується chroot-середовище та встановлюються вибрані вами пакети.
Коли процес завершено, залишається лише натиснути далі Пуск для запуску системиLinux Deploy змонтує образ, запустить визначені служби та, якщо ви ввімкнули графічний інтерфейс, запустить VNC-сервер у chroot. У VNC-переглядачі створіть підключення до IP-адреси та порту, що відображаються в Linux Deploy (наприклад, 127.0.0.1:5900), і після введення пароля ви повинні побачити повноцінний робочий стіл Linux, що працює на вашому пристрої Android.
Використовуйте Linux Deploy з X11 замість VNC
Одне питання, яке викликає багато запитань, полягає в тому, як Використання розгортання Linux з X11 Direct Замість VNC, щоб уникнути постійної залежності від VNC-сервера в дистрибутиві. Досить поширеними є випадки, коли SSH та середовище робочого столу встановлені, але потім startx не працює або здається, що «нічого не запускається».
Загальна ідея полягає в тому, щоб поєднати X-сервер для Android (тип XSDL XServer) Якщо Linux Deploy налаштовано в режимі X11, дистрибутив має запускати робочий стіл, вказуючи на цей зовнішній X-сервер, а не на Xvnc. Проблема зазвичай полягає в таких деталях, як змінна DISPLAY, IP-адреса та порт, де прослуховується XSDL, або точна команда для запуску середовища робочого столу.
У багатьох випадках запуск startx через SSH без доступного X-сервера не спрацює, навіть якщо робочий стіл, здається, встановлено правильно. Вам потрібно перевірити, чи Сервер Android X працюєLinux Deploy налаштовано на його використання, а графічне середовище (XFCE, LXDE, MATE тощо) запускається безпосередньо на X11. Це делікатніший сценарій, ніж VNC, і може вимагати перегляду як документації Linux Deploy, так і документації для конкретного X-сервера, який ви використовуєте.
Налаштування веб-сервера та інших сервісів на мобільному пристрої
Тепер, коли дистрибутив запущено та працює, ви можете Встановлення служб відбувається так само, як і в будь-якій системі Linux.Використовуючи apt, pacman або менеджер пакетів вашої системи, ви додаєте Apache, Nginx, MySQL/MariaDB, FTP, Samba, SSH та все інше, що вам потрібно.
Наприклад, у Debian або Ubuntu базовий веб-сервер встановлюється з такими пакетами, як Apache2 або NginxПотім ви керуєте демонами за допомогою `service` або `systemctl`, залежно від того, як налаштовано ваше chroot-середовище. Такі команди, як `service apache2 start` та `service apache2 stop`, зазвичай виконують роботу без будь-яких подальших ускладнень.
Єдина проблема полягає в тому, що він знаходиться всередині chroot-середовища, яким керує Linux Deploy. автоматичний запуск послуг Під час запуску середовище не завжди поводиться як традиційний сервер. Ви можете ввімкнути Apache в rcconf або на правильних рівнях запуску, але воно все одно не запуститься після завантаження chroot.
Скрипти автоматичного запуску в Linux Deploy
Щоб вирішити цю проблему, Linux Deploy пропонує опцію «Налаштування скриптів» у властивостяхАктивація цієї опції відкриває список, де можна додавати шляхи до скриптів, які запускатимуться щоразу під час запуску середовища Linux.
Ідея полягає в тому, щоб додати маршрути до скриптів запуску там. Apache, MySQL, cron та інші сервіси які ви хочете мати легкодоступними. Кожен елемент у списку вказує на фактичний скрипт у файловій системі дистрибутива, який буде виконано у вказаному порядку.
Таким чином, ви не залежите виключно від rcconf або посилань у /etc/rc*.d, які в середовищі chroot можуть не спрацьовувати, як це відбувається під час традиційного завантаження машини. За допомогою користувацьких скриптів ви гарантуєте, що ваш веб-сервер запускається автоматично коли запускається Linux Deploy, що важливо, якщо ви хочете залишити свій мобільний телефон прихованим десь у будинку, виконуючи роль сервера, який завжди доступний.
Налаштування Linux Deploy та Android для використання мобільного телефону як сервера
Якщо ви хочете, щоб телефон поводився як Цілодобовий сервер LinuxПросто встановити дистрибутив недостатньо: вам потрібно налаштувати деякі параметри Linux Deploy та Android, щоб запобігти занадто агресивному переходу системи в сплячий режим або втраті Wi-Fi під час вимкнення екрана.
На екрані загальних налаштувань розгортання Linux (окремо від властивостей дистрибутива) ви можете змінити мова, візуальна тема І, найголовніше, поведінка екрана та Wi-Fi. За замовчуванням у програмі зазвичай вибрано опцію типу «блокування екрана», яка тримає екран увімкненим під час роботи Linux.
Залишати екран постійно ввімкненим – погана ідея, якщо ви збираєтеся використовувати телефон як безперервний сервер: Він споживає багато енергії батареї та виділяє тепло. і прискорює знос панелі. Розумним рішенням буде зняти позначку з цієї опції, щоб екран вимикався автоматично, а потім знайти інший спосіб запобігти переходу процесора в режим глибокого сну.
Ще один важливий параметр – це прапорець для «Блокувати Wi-Fi» або подібний, який слід увімкнути, щоб Android не розривав бездротове з’єднання через деякий час із вимкненим екраном. Якщо Wi-Fi вимикається, ваш сервер зникає з мережі без попередження.
Зрештою, наполегливо рекомендується активувати Розгортання Linux «Автозавантаження»Отже, щоразу, коли ви перезавантажуєте телефон, програма автоматично запускатиме дистрибутив і виконуватиме власні скрипти. Таким чином, вам не доведеться пам’ятати про ручний запуск середовища після кожного перезавантаження.
Тримати процесор у сплячому режимі з вимкненим екраном
Оскільки Android переводить процесор у режим "сплячого сну", коли екран вимикається, продуктивність Linux у chroot може знизитися. болісно повільно, якщо нічого не робитиВи ж не хочете, щоб екран був увімкнений постійно, але й не хочете, щоб процесор повністю переходив у сплячий режим.
Типовим рішенням є використання такого додатку, як «Не заснути» що підтримує активність процесора, навіть коли екран вимкнений. Однією з таких функцій, згаданих у деяких посібниках, є «RedEye Stay Awake» з безкоштовною версією з рекламою, яка запобігає переходу процесора в режим глибокого сну, поки програма активна.
Поєднавши цей додаток (або подібний) з блокуванням WiFi у Linux Deploy, ви отримаєте мобільний продовжує швидко реагувати Він може обробляти веб-запити або SSH-з’єднання, навіть коли екран вимкнений. Це важливий трюк, якщо ви хочете, щоб ваш телефон працював стабільно як сервер, не тримаючи його постійно ввімкненим, як ліхтарик.
Рекомендовані макети та робочі столи для мобільних пристроїв
Вибір дистрибутива значно впливає на стабільність та споживання ресурсівОбговорювані інструменти зазвичай підтримують Ubuntu, Debian, Arch, Fedora, Kali, Alpine, Manjaro та деякі варіанти.
Ubuntu та Debian Це найпопулярніші та найзручніші варіанти. Вони пропонують величезні репозиторії, незліченні навчальні посібники та чудову інтеграцію з веб-серверами (Apache, Nginx), базами даних (MariaDB, PostgreSQL) та мовами програмування (PHP, Python, Node.js тощо). Для домашнього сервера або тестового середовища їх більш ніж достатньо.
Kali Linux Він зосереджений на безпеці та тестуванні на проникнення, тому чудово підійде, якщо вам потрібен «Pwn Phone» з готовими до використання інструментами аудиту. Однак, він вимагає трохи більше досвіду та ретельного управління.
Arch Linux та Манджаро Вони орієнтовані на більш досвідчених користувачів, які шукають високо настроювану систему поступового випуску з найновішими пакетами. Fedora також належить до категорії сучасних дистрибутивів, хоча вона не завжди відображається у всіх програмах без root-доступу.
Для пристроїв з обмеженими ресурсами, Alpine Linux Це надлегка альтернатива, розроблена для контейнерів та мінімальних середовищ. Завдяки правильній комбінації пакетів ви можете налаштувати високоефективний веб-сервер, використовуючи дуже мало пам'яті.
Щодо середовища робочого столу, рекомендується вибрати параметри легкі, як-от LXDE, XFCE, LXQt або MATEВажкі середовища робочого столу (GNOME, KDE Plasma) зазвичай споживають забагато оперативної пам'яті та процесора, що дуже помітно на мобільному пристрої, особливо якщо ви працюєте через VNC.
Поширені помилки VNC та способи їх вирішення
Під час монтування графічного робочого столу через VNC можуть з'являтися такі помилки, як: ВІДМОВИЛИ В ПОРТІ 5900 Під час спроби підключення з переглядача. Зазвичай це вказує на те, що VNC-сервер не прослуховує, знаходиться на іншому порту або сеанс розпочався неправильно.
Один зі способів прояснити ситуацію — це спочатку увійти через SSH до середовища Linux (ConnectBot, JuiceSSH) і вручну перевірити, чи працює VNC-сервер. Іноді достатньо простого запуску `vncserver` під час сеансу, щоб призначити дисплей і порт, а потім підключити VNC-переглядач до цього конкретного порту.
Також можливо, що проблема виникає через те, що встановив дистрибутив без графічного середовища або з погано сумісним середовищем робочого столу. У деяких випадках поєднання старіших версій Debian або Ubuntu з середовищами, такими як MATE, може бути проблематичнішим, ніж використання легких робочих столів, таких як LXDE, які, як правило, краще працюють у таких типах налаштувань.
Ще одна проблема — розмір зображення: якщо у вас закінчилося місце в Зображення, де живе LinuxВи не зможете встановлювати додаткові пакети або зберігати багато даних. Рекомендується створювати образи розміром понад 2 ГБ, якщо ви хочете встановити більше, ніж просто базову систему, резервуючи місце для програм і файлів.
За межами веб-сервера: що ви можете робити з Linux на своєму мобільному телефоні
Хоча зазвичай основна увага приділяється складанню кишеньковий веб-серверЗапуск Linux на вашому Android відкриває двері до багатьох інших практичних та навчальних можливостей.
Ви можете підняти файловий сервер (Samba, NFS) Щоб надати спільний доступ до папок у вашій локальній мережі, запустіть окремий сервер баз даних або навіть використовуйте легкі контейнери, якщо ваш дистрибутив це дозволяє. Все це доступне з інших комп'ютерів у вашій мережі, як і з невеликого Raspberry Pi.
Як середовище розробки, дуже зручно мати Git, Python, Node.js, компілятори, Vim, Emacs та інші інструменти безпосередньо на вашому мобільному пристрої, доступні через SSH з вашого ноутбука або навіть іншого телефону. Це дуже гнучкий спосіб завжди мати свій «набір інструментів» під рукою.
Якщо вас цікавить безпека, такі дистрибутиви, як Kali або інші, розроблені для тестування на проникнення Вони дозволяють проводити контрольовані тести в лабораторних мережах (завжди в межах закону). Ваш мобільний телефон стає надзвичайно портативною платформою для аудиту.
Ви також можете поєднати середовище Linux з мультимедійними можливостями Android, наприклад, використовуючи Linux для обслуговувати веб-контент або API та Android для їх локального відтворення або відтворення через Chromecast, залежно від випадку.
Коротше кажучи, за допомогою таких інструментів, як Linux Deploy, UserLAnd, Andronix, Termux та правильних налаштувань Android, цілком можливо перетворити простий смартфон на... Дивовижно потужний міні-сервер LinuxІдеально підходить для навчання, експериментів та перенесення власної лабораторії в кишені, не витрачаючи гроші на спеціалізоване обладнання чи складні, інвазивні установки.
