Linux-distributionshandledning: Hur man värdar en webbserver på din mobiltelefon

  • Dra nytta av en rotad eller icke-rotad Android-enhet för att köra en komplett Linux-distro med chroot eller PROot.
  • Använd Linux Deploy, Termux, UserLAnd eller Andronix tillsammans med VNC eller XServer XSDL för att ha en webbserver och ett lätt skrivbord.
  • Konfigurera anpassade skript, WiFi-blockering och appar för att "håll dig vaken" för att få din mobiltelefon att fungera som en stabil server dygnet runt.
  • Välj lättviktiga distributioner och skrivbordsmiljöer (Debian, Ubuntu, Alpine + LXDE/XFCE) för att skapa ett portabelt Linux-labb, användbart för utveckling och säkerhet.

Linux-distribution

Förvandla din Android-telefon till en liten fickserver för Linux Det är en av de där idéerna som låter nördig till en början ... tills du provar den. Moderna telefoner har mer än tillräckligt med kraft för att köra en komplett distribution med nätverkstjänster, en webbserver och till och med ett lätt grafiskt skrivbord, utan att offra Android eller riskera dina data.

Med några appar som Linux Deployment, Termux, UserLAND, Andronix, VNC eller XServer XSDLDu kan återanvända en gammal mobiltelefon eller surfplatta och ge den ett andra liv som en mini-hemserver, testmiljö eller portabelt säkerhetslabb. Den här guiden visar dig i detalj hur allt fungerar, vad du behöver, hur du installerar det och vad du kan göra med Linux som körs inuti Android.

Varför är det värt att installera Linux på din Android-telefon?

Android är utmärkt för vardagsbruk, men när du vill ha en komplett GNU/Linux-miljö För programmering, konfigurering av servrar eller att mixtra med en klassisk skrivbordsmiljö är den inte tillräcklig. Om du har en telefon eller surfplatta som du knappt använder längre är det ett bra sätt att utnyttja den och förhindra att den glöms bort i en låda att installera en Linuxdistribution på den.

De vanligaste motivationerna handlar om att utföra Linux-exklusiv programvaraDu kan testa nätverkstjänster (Apache, Nginx, SSH, databaser), skapa ett litet säkerhetslabb eller ha en utvecklingsmaskin åtkomlig via SSH var som helst. I slutändan kombinerar du det bästa av två världar: Android som huvudsystem och Linux som gästsystem, som körs parallellt.

Dessutom är lärdomen du får från att konfigurera och underhålla en distro på din mobila enhet Rent guld om du studerar system, utveckling eller cybersäkerhetDu kan förstöra saker i Linux-miljön utan rädsla för att skada Android, eftersom systemet är inkapslat i en avbildning eller en separat chroot/PROot.

En annan viktig poäng är att många lösningar fungerar. inget behov av rotTack vare tekniker som PROoot, som härmar chroot-beteende men i användarutrymme, kan man simulera ett ganska komplett Linux-filträd, installera paket och arbeta nästan som på en vanlig server, utan att låsa upp enheten.

Samsung DeX och Linux kan användas tillsammans
Relaterad artikel:
Samsung DeX och Linux: Är det möjligt att använda dem tillsammans?

Kan din Android-enhet köra Linux smidigt?

Praktiskt taget vilken måttligt modern Android-enhet som helst kan köra den. någon form av LinuxUpplevelsen kommer dock till stor del att bero på RAM, ledigt lagringsutrymme och om du har root-åtkomst eller inte. Även äldre telefoner kan köra lättviktsdistributioner om du avstår från tunga skrivbordsmiljöer som GNOME eller KDE.

Som en rimlig referens för en liten webbserver utan grafisk miljöDet rekommenderas att ha minst 2 GB RAM, cirka 5 GB ledigt utrymme (internt eller på ett snabbt microSD-kort) och en stabil Wi-Fi-anslutning för att ladda ner distroavbildningen och hantera systemet över nätverket. Ju fler resurser din enhet har, desto bättre.

Om din idé är att använda en Linux-skrivbordsmiljö med X11 eller WaylandDet är mycket praktiskt att ha ett tangentbord och en mus (Bluetooth eller OTG) och, om din telefon tillåter det, videoutgång till en bildskärm eller TV. De är inte obligatoriska, men de förbättrar upplevelsen avsevärt jämfört med att bara använda pekskärmen.

Du måste också bestämma dig för om du vill rotterminal Eller så kanske du föredrar att behålla den utan root. Med root har du äkta chroot, Linux Deploy i all sin prakt och mycket finkornig systemkontroll. Utan root måste du förlita dig på Prooot med Andronix, UserLAnd, AnLinux och liknande verktyg, vilka fortfarande är fullt tillräckliga för en lättviktsserver eller ett fjärrskrivbord.

Som en allmän regel behöver du bara en för en grundläggande webbserver. miljö utan grafiskt gränssnittvilket förbrukar mindre minne och batteri och håller telefonen svalare. Om du vill experimentera med skrivbordsmiljöer som LXDE eller XFCE är det bäst att använda en något kraftfullare enhet.

Hur fungerar Linux på Android: chroot, PROot och grafikservrar?

När vi pratar om att "installera Linux på Android" menar vi egentligen inte ersätter Androidmen genom att köra Linux inuti den. Inga flashande ROM-skivor eller manipulering av bootloadern: dessa lösningar skapar ett Linux-filsystem och monterar det som en gästmiljö.

Om enheten är rootad är det klassiska verktyget chrootMed chroot ändrar du rotkatalogen som visas för en process och dess underordnade processer, så att de bara ser katalogträdet för gästdistributionen. Detta kräver root-åtkomst, vilket är anledningen till att det inte är aktiverat som standard på Android.

I scenarier utan rot är huvudpersonen PROotDet här verktyget simulerar en del av chroots beteende från användarutrymmet, och översätter systemanrop så att det ser ut som om processen körs i en annan rotkatalog, även om det fortfarande är en vanlig Android-användare. Det utgör grunden för många lösningar som Andronix, AnLinux och UserLAnd.

Den andra stora utmaningen är grafiken. En Linux-skrivbordsmiljö behöver en Server X eller WaylandDen servern kan dock inte kommunicera direkt med Androids grafikhårdvara som den skulle göra på en PC. Därför används två vanligt förekommande strategier: VNC och dedikerade X-servrar för Android.

Den första strategin är att starta en VNC-servern i distributionen och anslut från en Android VNC-visningsapp (VNC Viewer, bVNC, etc.) till den lokala värden. Det du ser på skärmen är ett fjärrskrivbord som faktiskt körs på själva telefonen. Enkelt och mycket kompatibelt, men med något begränsad prestanda.

Det andra sättet är att använda en X-server designad för Android, till exempel XServer XSDLI det här fallet körs den grafiska servern som en Android-app och Linux-distributionen fungerar som en X-klient och ansluter till den. Den erbjuder vanligtvis bättre prestanda än ren VNC, men kräver lite extra konfiguration (DISPLAY-variabler, portar etc.).

Alternativ utan root: PROot till undsättning

Om du inte vill rota din enhet eller hantera upplåsning av bootloadern finns det flera appar som kan starta upp kompletta distributioner med Proot i användarutrymmeAndroid-systemet förblir intakt, och Linux är inkapslat som om det vore en gigantisk container.

Linux-distribution

Andronix + Termux + VNC Viewer

En mycket populär kombination är att blanda Andronix, Termux och en VNC-visareTermux tillhandahåller den avancerade terminalen och dess repositories, medan Andronix vägleder nedladdningen och installationen av distributionen i en PROot-miljö.

Det typiska flödet är enkelt: du installerar Andronix, Termux och VNC ViewerI Andronix väljer du vilken distro du vill ha (Ubuntu, Debian, Manjaro, Kali, etc.) och vilken skrivbordsmiljö (XFCE, LXDE…), kopierar kommandot som appen genererar, klistrar in det i Termux och väntar på att filsystemet ska laddas ner och packas upp.

Till sist konfigurerar du VNC-lösenord och lösningDu startar den grafiska servern från Linux-sessionen och ansluter med VNC Viewer till något i stil med localhost:1. Det som visas är ett riktigt Linux-skrivbord som rör sig inuti den mobila enheten, åtkomligt via terminal och grafiskt gränssnitt utan att du behöver röra roten.

Andra alternativ utan root: UserLAND, AnLinux, Debian Noroot…

Förutom Andronix finns det ett helt ekosystem av appar baserade på Pro för kompletta distributioner utan administratörsrättigheter. Var och en har sina egna särdrag, men de delar samma allmänna idé.

UserLAND Det är ett av de mest användarvänliga och öppna källkodsbaserade alternativen. Det låter dig driftsätta Debian, Ubuntu, Arch, Kali eller Alpine och erbjuder både skrivbordssessioner (LXDE, XFCE4) och installationer av enskilda applikationer, till exempel bara Firefox eller LibreOffice istället för ett helt system.

Dess gränssnitt är organiserat i sektioner av Program, sessioner och filsystemI Program väljer du vad som ska installeras; i Sessioner hanterar du aktiva anslutningar (VNC, SSH, XSDL); och i Filsystem ser du Linux-rotkatalogen du har skapat. Det låter dig ha flera sessioner med samma installation, med olika åtkomstmetoder.

anlinux Det fungerar på liknande sätt och förlitar sig i hög grad på Termux. Appen genererar skript som körs i Termux för att installera Ubuntu, Debian, Fedora, CentOS, openSUSE eller Kali i en Proot-miljö. Den erbjuder även lätta skrivbordsmiljöer som XFCE4, MATE, LXQt eller LXDE, perfekta för mobila enheter med begränsat RAM-minne.

Debian Noroot Det är praktiskt: det startar ett lätt, icke-rootat Debian-system på Android 4.1 eller högre. Det är mindre flexibelt och prestandan är inte spektakulär, men installationen är väldigt enkel om du bara vill prova Debian utan alltför mycket krångel.

Installera Linux med root med hjälp av Linux Deploy

När enheten är rotad öppnar den dörren till kraftfullare lösningar, och här är drottningen Linux-distributionDen här appen använder chroot tillsammans med BusyBox för att installera Debian, Ubuntu, Arch, Fedora och andra distributioner direkt på telefonens lagring, med avsevärd kontroll över hur de monteras och startas.

Med tiden har Linux Deploy vunnit mark bättre gränssnitt, profiler och alternativIdag låter det dig välja distribution, installationstyp, filsystem, aktivera eller inaktivera det grafiska gränssnittet, definiera anpassade startskript och aktivera automatisk start när den mobila enheten startas om.

Grundläggande krav för Linux-distribution

Först och främst behöver du en Android med root och uppdaterad BusyBoxBusyBox tillhandahåller många Unix-verktyg som Linux Deploy använder internt för att hantera chroot. Installera det från en betrodd källa, ge det superanvändarbehörighet och verifiera att det är korrekt konfigurerat.

Du behöver också en VNC-visare för Androidsåsom VNC Viewer, som är gratis och fungerar mycket bra för att ansluta till det grafiska skrivbordet i den installerade distributionen. Även om Linux Deploy också erbjuder X11-läge är VNC vanligtvis den enklaste ingångspunkten.

Angående Android-kompatibilitet indikerar Linux Deploy stöd från Android 2.3.3Men på så gammal hårdvara är upplevelsen oftast ganska dålig. Helst vill du ha en relativt modern enhet med minst 1 GB RAM, flera gigabyte ledigt utrymme (antingen internt eller på ett snabbt microSD-kort) och en hyfsad dataanslutning, eftersom du då behöver ladda ner ARM-avbildningar som är flera hundra megabyte eller till och med några gigabyte stora.

Konfigurera distribution, lagring och grafiskt gränssnitt

3D-logotyper för Android och Linux
Relaterad artikel:
Ultimat guide: Hur man installerar Linux på en Android-telefon eller surfplatta och förvandlar den till en minidator

När du öppnar Linux Deploy ser du huvudskärmen med knappar för Start/Stopp och en inställningsikon Längst ner. Där kommer du åt installationsegenskaperna, där du bestämmer vilken Linuxdistribution som ska installeras och hur du gör det.

I det här avsnittet kan du välja distribution (Debian, Ubuntu, Arch, Fedora…)Arkitekturen (arm, arm64, armhf, armel, etc.) och filsystemets sökväg krävs för både nedladdningen och den slutliga avbildningen. Det är viktigt att välja den arkitektur som din processor faktiskt använder för att undvika ovanliga fel under installationen.

Den vanligaste typen av installation är "bildfilDet här betyder att Linux kommer att finnas i en enda fil i EXT2, EXT4 eller annat format. För de flesta användare är detta det enklaste alternativet jämfört med att använda dedikerade partitioner, vilket kräver mer expertis.

Nedan kan du välja filsystemstyp (EXT2 fungerar oftast bra) och bestäm om bilden ska lagras i internminnet eller på microSD-kortet. Om SD-kortet är av god kvalitet är det ett praktiskt sätt att undvika att fylla upp telefonens huvudlagringsutrymme.

I GUI-sektionen kan du aktivera eller inaktivera det grafiska gränssnittetOm du aktiverar det kommer Linux Deploy att förbereda en lätt skrivbordsmiljö och konfigurera VNC-åtkomst. Där väljer du också vilken miljö som ska installeras (LXDE, XFCE, etc.), samt användarnamn och lösenord för den grafiska sessionen.

Installera och starta distributionen med Linux Deploy

När du har inställningarna som du vill ha dem är det dags att starta distributionsinstallationFrån menyn i det övre högra hörnet hittar du alternativet "Installera", vilket startar nedladdningen och konfigurationen av bilden.

Den här processen kan ta allt från några minuter till en halvtimme eller mer, beroende på din internetanslutning och enhetens prestanda. Under den här tiden laddas bassystemet ner, packas upp, chroot konfigureras och de paket du har valt installeras.

När processen är klar återstår det bara att trycka på Börja starta systemetLinux Deploy monterar avbildningen, startar de definierade tjänsterna och, om du aktiverade det grafiska gränssnittet, startar VNC-servern i chrooten. I VNC-visaren skapar du en anslutning till IP-adressen och porten som visas av Linux Deploy (till exempel 127.0.0.1:5900), och efter att du har angett lösenordet bör du se ett komplett Linux-skrivbord som körs på din Android-enhet.

Använd Linux Deploy med X11 istället för VNC

En fråga som väcker många frågor är hur Använd Linux Deploy med X11 Direct Istället för VNC, för att undvika att alltid förlita sig på en VNC-server inom distributionen. Det är ganska vanligt att få SSH och en skrivbordsmiljö installerad som fungerar, men sedan får startx att misslyckas eller verkar som att "ingenting startar".

Den allmänna idén är att kombinera en X-server för Android (XServer XSDL-typ) Med Linux Deploy konfigurerat i X11-läge bör distributionen starta sitt skrivbord genom att peka på den externa X-servern istället för Xvnc. Problemet ligger vanligtvis i detaljer som DISPLAY-variabeln, IP-adressen och porten där XSDL lyssnar, eller det exakta kommandot för att starta skrivbordsmiljön.

I många fall fungerar det inte att starta startx via SSH utan en tillgänglig X-server, även om skrivbordet verkar vara korrekt installerat. Du måste kontrollera att Android X-servern körsLinux Deploy är konfigurerat för att använda det, och den grafiska miljön (XFCE, LXDE, MATE, etc.) startas direkt på X11. Detta är ett mer känsligt scenario än VNC och kan kräva att man granskar både Linux Deploy-dokumentationen och dokumentationen för den specifika X-servern du använder.

Konfigurera en webbserver och andra tjänster på den mobila enheten

Med distributionen igång nu kan du Att installera tjänster är detsamma som på vilket Linux-system som helst.Med hjälp av apt, pacman eller ditt systems pakethanterare lägger du till Apache, Nginx, MySQL/MariaDB, FTP, Samba, SSH och allt annat du behöver.

I Debian eller Ubuntu installeras till exempel en grundläggande webbserver med paket som Apache2 eller NginxSedan styr du daemonerna med `service` eller `systemctl`, beroende på hur din chroot-miljö är konfigurerad. Kommandon som `service apache2 start` och `service apache2 stop` gör vanligtvis jobbet utan ytterligare komplikationer.

Den enda haken är att den finns inuti en chroot som hanteras av Linux Deploy. automatisk start av tjänster När man startar miljön beter sig den inte alltid som en traditionell server. Man kan ha Apache aktiverat i rcconf eller i rätt körnivåer, och ändå startar den fortfarande inte när chrooten startar.

Automatiska startskript i Linux Deploy

För att åtgärda detta beteende erbjuder Linux Deploy alternativet att "Anpassade skript" i egenskapernaOm du aktiverar den visas en lista där du kan lägga till sökvägar till skript som körs varje gång Linux-miljön startas.

Tanken är att lägga till rutterna till startskripten där. Apache, MySQL, cron och andra tjänster som du vill ha lättillgänglig. Varje objekt i listan pekar på ett faktiskt skript i distributionens filsystem, vilket kommer att köras i den ordning som visas.

På så sätt behöver du inte bara förlita dig på rcconf eller länkarna i /etc/rc*.d, som i en chroot-miljö kanske inte aktiveras som de gör vid en traditionell maskinstart. Med anpassade skript säkerställer du att din webbservern startar automatiskt när Linux Deploy startar, vilket är viktigt om du vill lämna din mobiltelefon gömd runt huset och fungera som en server som alltid är tillgänglig.

Linux Deploy och Android-inställningar för att använda din mobiltelefon som server

Om du vill att telefonen ska bete sig som en Linux-server dygnet runtAtt bara installera distributionen räcker inte: du måste justera vissa Linux Deploy- och Android-parametrar för att förhindra att systemet går in i viloläge för aggressivt eller att WiFi-nätverket bryts när du stänger av skärmen.

På skärmen för allmänna inställningar för Linux Deploy (separat från distributionsegenskaperna) kan du ändra språk, visuellt tema Och, viktigast av allt, skärmens och Wi-Fi:ets beteende. Som standard har applikationen vanligtvis ett alternativ som "låsskärm" valt, vilket håller skärmen påslagen medan Linux körs.

Att låta skärmen vara permanent påslagen är en dålig idé om du ska använda telefonen som en kontinuerlig server: Den förbrukar mycket batterikraft och genererar värme. och accelererar skärmslitage. Det kloka är att avmarkera det alternativet så att skärmen stängs av automatiskt, och sedan hitta ett annat sätt att förhindra att processorn går in i djupt viloläge.

Ett annat viktigt alternativ är rutan för "Blockera Wi-Fi" eller liknande, vilket bör hållas aktiverat så att Android inte kopplar bort den trådlösa anslutningen efter ett tag med skärmen avstängd. Om Wi-Fi-anslutningen går ner försvinner din server från nätverket utan förvarning.

Slutligen rekommenderas det starkt att aktivera Linux-distribution av "Autostart"Så varje gång du startar om telefonen startar appen automatiskt distributionen och kör de anpassade skripten. På så sätt behöver du inte komma ihåg att manuellt starta miljön efter varje omstart.

Håll processorn vaken med skärmen avstängd

Eftersom Android försätter processorn i "viloläge" när skärmen stängs av, kan prestandan för Linux i chroot bli sämre. smärtsamt långsamt om man inte gör någontingDu vill inte att skärmen ska vara på hela tiden, men du vill inte heller att processorn ska gå helt i viloläge.

Den typiska lösningen är att använda en app som "håll dig vaken" som håller processorn aktiv även när skärmen är avstängd. En av de som nämns i vissa guider är "RedEye Stay Awake", med en gratis reklambaserad version som förhindrar att processorn går in i djupt viloläge medan appen är aktiv.

Genom att kombinera den appen (eller en liknande) med Linux Deploys WiFi-blockering får du mobilen fortsätter att svara snabbt Den kan hantera webbförfrågningar eller SSH-anslutningar, även när skärmen är avstängd. Detta är ett viktigt knep om du vill att din telefon ska fungera som en stabil server utan att behöva hålla den konstant tänd som en ficklampa.

Rekommenderade layouter och skrivbord för mobila enheter

Valet av distro påverkar i hög grad stabilitet och resursförbrukningDe verktyg som diskuteras stöder vanligtvis Ubuntu, Debian, Arch, Fedora, Kali, Alpine, Manjaro och vissa varianter.

Ubuntu och Debian Dessa är de mest populära och användarvänliga alternativen. De erbjuder enorma repositories, otaliga handledningar och utmärkt integration med webbservrar (Apache, Nginx), databaser (MariaDB, PostgreSQL) och språk (PHP, Python, Node.js, etc.). För en hemmaserver eller en testmiljö är de mer än tillräckliga.

Kali Linux Den fokuserar på säkerhet och penetrationstestning, så den passar utmärkt om du vill ha en "Pwn Phone" med färdiga granskningsverktyg. Den kräver dock lite mer erfarenhet och noggrann hantering.

Arch Linux och Manjaro De riktar sig till mer avancerade användare som letar efter ett mycket anpassningsbart system för rullande releaser med de senaste paketen. Fedora faller också inom kategorin moderna distributioner, även om det inte alltid visas i alla appar som inte är root-baserade.

För enheter med begränsade resurser, Alpine Linux Det är ett ultralätt alternativ designat för containrar och minimala miljöer. Med rätt kombination av paket kan du konfigurera en mycket effektiv webbserver med väldigt lite minne.

Angående skrivbordsmiljön rekommenderas det att välja alternativ ljus som LXDE, XFCE, LXQt eller MATETunga skrivbordsmiljöer (GNOME, KDE Plasma) tenderar att förbruka för mycket RAM och CPU, något som är mycket märkbart på en mobil enhet, ännu mer om du arbetar via VNC.

Vanliga VNC-fel och hur man löser dem

När man monterar det grafiska skrivbordet via VNC kan fel som följande uppstå: ECONNREFUSED vid port 5900 När man försöker ansluta från tittaren. Detta indikerar vanligtvis att VNC-servern inte lyssnar, är på en annan port eller att sessionen inte har startat korrekt.

Ett sätt att klargöra situationen är att först gå igenom SSH till Linux-miljö (ConnectBot, JuiceSSH) och kontrollera manuellt om VNC-servern körs. Ibland räcker det att bara starta `vncserver` under sessionen för att tilldela en skärm och port, och sedan ansluta VNC-visaren till den specifika porten.

Det är också möjligt att problemet beror på att man har installerade distributionen utan en grafisk miljö eller med en dåligt kompatibel skrivbordsmiljö. I vissa fall kan det vara mer problematiskt att blanda äldre versioner av Debian eller Ubuntu med miljöer som MATE än att använda lätta skrivbordsmiljöer som LXDE, vilka tenderar att fungera bättre i den här typen av inställningar.

Ett annat problem är bildstorleken: om du har slut på utrymme inom IMG där Linux finnsDu kommer inte att kunna installera ytterligare paket eller lagra mycket data. Det rekommenderas att skapa avbildningar större än 2 GB om du vill installera mer än bara bassystemet, vilket reserverar utrymme för program och filer.

Bortom webbservern: vad du kan göra med Linux på din mobiltelefon

SXMO-guide: Hur man får en Linux-terminal på en gammal smartphone
Relaterad artikel:
SXMO-guide: Hur man får en Linux-terminal på en gammal smartphone

Även om det vanliga fokuset ligger på att montera en fickwebbserverAtt ha Linux kört på din Android öppnar dörren till många fler praktiska och lärandemöjligheter.

Du kan lyfta en filserver (Samba, NFS) För att dela mappar på ditt lokala nätverk, kör en fristående databasserver, eller använd till och med lättviktsbehållare om din distribution tillåter det. Allt detta är tillgängligt från andra datorer i ditt nätverk, precis som en liten Raspberry Pi.

Som utvecklingsmiljö är det mycket praktiskt att ha Git, Python, Node.js, kompilatorer, Vim, Emacs och andra verktyg direkt på din mobila enhet, åtkomliga via SSH från din bärbara dator eller till och med en annan telefon. Det är ett mycket flexibelt sätt att alltid ha din "verktygslåda" med dig.

Om du är intresserad av säkerhet, distributioner som Kali eller andra designade för penetrationstestning De låter dig utföra kontrollerade tester på laboratorienätverk (alltid inom lagens gränser). Din mobiltelefon blir en extremt portabel revisionsplattform.

Du kan också kombinera Linux-miljön med Androids multimediafunktioner, till exempel genom att använda Linux för att servera webbinnehåll eller API:er och Android för att spela upp dem lokalt eller exponera dem via Chromecast, beroende på fallet.

Kort sagt, med verktyg som Linux Deploy, UserLAnd, Andronix, Termux och rätt Android-justeringar är det fullt möjligt att förvandla en enkel smartphone till en ... Förvånansvärt kapabel Linux-miniserverPerfekt för att lära sig, experimentera och bära ditt eget labb i fickan utan att spendera pengar på dedikerad hårdvara eller hantera komplicerade, invasiva installationer.