เปลี่ยนโทรศัพท์ Android ของคุณให้เป็นอุปกรณ์ขนาดเล็ก เซิร์ฟเวอร์ Linux พกพา นี่อาจฟังดูเหมือนไอเดียของคนไอทีในตอนแรก...จนกว่าคุณจะได้ลองใช้ดู โทรศัพท์มือถือรุ่นใหม่มีประสิทธิภาพมากพอที่จะใช้งานระบบปฏิบัติการเวอร์ชันเต็มรูปแบบ พร้อมบริการเครือข่าย เว็บเซิร์ฟเวอร์ และแม้แต่เดสก์ท็อปแบบกราฟิกขนาดเล็ก โดยไม่ลดทอนคุณภาพของ Android หรือทำให้ข้อมูลของคุณตกอยู่ในความเสี่ยง
ด้วยแอปบางตัวเช่น Linux Deploy, Termux, UserLAND, Andronix, VNC หรือ XServer XSDLคุณสามารถนำโทรศัพท์มือถือหรือแท็บเล็ตเครื่องเก่ามาดัดแปลงให้ใช้งานได้อีกครั้งในฐานะเซิร์ฟเวอร์ขนาดเล็กสำหรับใช้ในบ้าน สภาพแวดล้อมสำหรับการทดสอบ หรือห้องปฏิบัติการด้านความปลอดภัยแบบพกพา คู่มือนี้จะแสดงรายละเอียดเกี่ยวกับวิธีการทำงานทั้งหมด สิ่งที่คุณต้องการ วิธีการติดตั้ง และสิ่งที่คุณสามารถทำได้เมื่อใช้ Linux ที่ทำงานอยู่ภายใน Android
ทำไมการติดตั้ง Linux บนโทรศัพท์ Android จึงคุ้มค่า?
Android เหมาะสำหรับการใช้งานในชีวิตประจำวัน แต่เมื่อคุณต้องการ... สภาพแวดล้อม GNU/Linux ที่สมบูรณ์ สำหรับการเขียนโปรแกรม การตั้งค่าเซิร์ฟเวอร์ หรือการปรับแต่งสภาพแวดล้อมเดสก์ท็อปแบบคลาสสิกนั้น มันอาจยังไม่เพียงพอ แต่ถ้าคุณมีโทรศัพท์หรือแท็บเล็ตที่แทบไม่ได้ใช้แล้ว การติดตั้งระบบปฏิบัติการ Linux ลงไปก็เป็นวิธีที่ดีที่จะนำมันกลับมาใช้ประโยชน์และป้องกันไม่ให้มันถูกลืมไว้ในลิ้นชัก
แรงจูงใจที่พบได้บ่อยที่สุดเกี่ยวข้องกับการลงมือปฏิบัติ ซอฟต์แวร์เฉพาะสำหรับลินุกซ์คุณสามารถทดสอบบริการเครือข่าย (Apache, Nginx, SSH, ฐานข้อมูล) ตั้งค่าห้องปฏิบัติการด้านความปลอดภัยขนาดเล็ก หรือมีเครื่องพัฒนาซอฟต์แวร์ที่สามารถเข้าถึงได้ผ่าน SSH จากทุกที่ ท้ายที่สุดแล้ว คุณจะได้ผสานสิ่งที่ดีที่สุดของทั้งสองโลกเข้าด้วยกัน: Android เป็นระบบหลักและ Linux เป็นระบบเสมือนที่ทำงานควบคู่กันไป
นอกจากนี้ ความรู้ที่คุณจะได้รับจากการติดตั้งและดูแลรักษาระบบปฏิบัติการบนอุปกรณ์มือถือของคุณก็คือ... หนังสือเล่มนี้มีค่ามากหากคุณศึกษาด้านระบบ การพัฒนา หรือความปลอดภัยทางไซเบอร์คุณสามารถทำให้เกิดความเสียหายภายในสภาพแวดล้อม Linux ได้โดยไม่ต้องกลัวว่าจะทำให้ Android เสียหาย เนื่องจากระบบถูกห่อหุ้มไว้ในอิมเมจหรือ chroot/PROot ที่แยกต่างหาก
อีกประเด็นสำคัญคือ มีหลายวิธีที่ได้ผล ไม่จำเป็นต้องรูทด้วยเทคโนโลยีอย่าง PROoot ซึ่งจำลองพฤติกรรมของ chroot แต่ในพื้นที่ของผู้ใช้ คุณสามารถจำลองโครงสร้างไฟล์ Linux ที่ค่อนข้างสมบูรณ์ ติดตั้งแพ็กเกจ และทำงานได้เกือบเหมือนบนเซิร์ฟเวอร์ปกติ โดยไม่ต้องปลดล็อกอุปกรณ์
อุปกรณ์ Android ของคุณสามารถใช้งาน Linux ได้อย่างราบรื่นหรือไม่?
อุปกรณ์ Android รุ่นใหม่ๆ แทบทุกเครื่องสามารถใช้งานแอปนี้ได้ ลินุกซ์บางรูปแบบอย่างไรก็ตาม ประสบการณ์การใช้งานจะขึ้นอยู่กับ RAM พื้นที่เก็บข้อมูลว่าง และสิทธิ์การเข้าถึงระดับรูทของคุณเป็นอย่างมาก แม้แต่โทรศัพท์รุ่นเก่าก็สามารถใช้งานระบบปฏิบัติการที่มีน้ำหนักเบาได้ หากคุณหลีกเลี่ยงสภาพแวดล้อมเดสก์ท็อปขนาดใหญ่ เช่น GNOME หรือ KDE
เพื่อเป็นข้อมูลอ้างอิงที่เหมาะสมสำหรับขนาดเล็ก เว็บเซิร์ฟเวอร์ที่ไม่มีสภาพแวดล้อมแบบกราฟิกแนะนำให้มี RAM อย่างน้อย 2 GB, พื้นที่ว่างประมาณ 5 GB (ภายในเครื่องหรือการ์ด microSD ที่มีความเร็วสูง) และการเชื่อมต่อ Wi-Fi ที่เสถียรเพื่อดาวน์โหลดอิมเมจของระบบปฏิบัติการและจัดการระบบผ่านเครือข่าย ยิ่งอุปกรณ์ของคุณมีทรัพยากรมากเท่าไหร่ก็ยิ่งดีเท่านั้น
หากแนวคิดของคุณคือการใช้เดสก์ท็อป Linux กับ X11 หรือ Waylandการมีคีย์บอร์ดและเมาส์ (บลูทูธหรือ OTG) เป็นสิ่งที่มีประโยชน์มาก และหากโทรศัพท์ของคุณรองรับ การส่งสัญญาณภาพไปยังจอภาพหรือทีวีก็เช่นกัน อุปกรณ์เหล่านี้ไม่ใช่สิ่งจำเป็น แต่จะช่วยเพิ่มประสบการณ์การใช้งานให้ดีขึ้นอย่างมากเมื่อเทียบกับการใช้เพียงหน้าจอสัมผัส
คุณจะต้องตัดสินใจด้วยว่าคุณต้องการหรือไม่ ขั้วราก หรือคุณอาจจะชอบใช้งานโดยไม่ใช้สิทธิ์ root ก็ได้ หากใช้สิทธิ์ root คุณจะได้ chroot ที่แท้จริง, Linux Deploy ที่ครบครัน และการควบคุมระบบอย่างละเอียด แต่ถ้าไม่ใช้สิทธิ์ root คุณจะต้องพึ่ง Prooot ร่วมกับ Andronix, UserLAnd, AnLinux และเครื่องมืออื่นๆ ที่คล้ายกัน ซึ่งก็ยังใช้งานได้ดีสำหรับเซิร์ฟเวอร์ขนาดเล็กหรือเดสก์ท็อประยะไกล
โดยทั่วไปแล้ว สำหรับเว็บเซิร์ฟเวอร์พื้นฐาน คุณต้องการเพียงแค่หนึ่งเดียวเท่านั้น สภาพแวดล้อมที่ปราศจาก GUIซึ่งจะใช้หน่วยความจำและแบตเตอรี่น้อยลง และทำให้โทรศัพท์เย็นลง หากคุณต้องการทดลองใช้สภาพแวดล้อมเดสก์ท็อป เช่น LXDE หรือ XFCE ควรใช้อุปกรณ์ที่มีประสิทธิภาพสูงกว่าเล็กน้อย
Linux ทำงานบน Android ได้อย่างไร: chroot, PROot และเซิร์ฟเวอร์กราฟิก?
เมื่อเราพูดถึง "การติดตั้ง Linux บน Android" จริงๆ แล้วเราไม่ได้หมายถึงอย่างนั้น แทนที่ Androidแต่โดยการเรียกใช้ Linux ภายในนั้น ไม่จำเป็นต้องแฟลช ROM หรือแก้ไขบูตโหลดเดอร์: โซลูชันเหล่านี้สร้างระบบไฟล์ Linux และติดตั้งเป็นสภาพแวดล้อมแบบแขกรับเชิญ
หากอุปกรณ์ได้รับการรูทแล้ว เครื่องมือแบบดั้งเดิมคือ โครตคำสั่ง chroot จะเปลี่ยนไดเร็กทอรีรากที่กระบวนการและกระบวนการย่อยมองเห็น เพื่อให้พวกมันเห็นเฉพาะโครงสร้างไดเร็กทอรีของระบบปฏิบัติการแขกเท่านั้น คำสั่งนี้ต้องการสิทธิ์ระดับรูท ซึ่งเป็นเหตุผลว่าทำไมจึงไม่ได้เปิดใช้งานโดยค่าเริ่มต้นใน Android
ในสถานการณ์ที่ไม่มีรากเหง้า ตัวเอกคือ โพรทโปรแกรมนี้จำลองพฤติกรรมบางส่วนของ chroot จากพื้นที่ผู้ใช้ โดยแปลงการเรียกใช้ระบบเพื่อให้ดูเหมือนว่ากระบวนการกำลังทำงานอยู่ในไดเร็กทอรีรูทอื่น แม้ว่าจะยังคงเป็นผู้ใช้ Android ปกติก็ตาม โปรแกรมนี้เป็นพื้นฐานของโซลูชันมากมาย เช่น Andronix, AnLinux และ UserLAnd
ความท้าทายสำคัญอีกประการหนึ่งคือเรื่องกราฟิก เดสก์ท็อป Linux ต้องการ... เซิร์ฟเวอร์ X หรือ Waylandอย่างไรก็ตาม เซิร์ฟเวอร์ดังกล่าวไม่สามารถสื่อสารโดยตรงกับฮาร์ดแวร์กราฟิกของ Android ได้เหมือนกับบนพีซี ดังนั้นจึงมีการใช้กลยุทธ์สองอย่างที่ใช้กันอย่างแพร่หลาย ได้แก่ VNC และเซิร์ฟเวอร์ X เฉพาะสำหรับ Android
กลยุทธ์แรกคือการเริ่มต้น เซิร์ฟเวอร์ VNC ภายในระบบปฏิบัติการ และเชื่อมต่อจากแอปดูไฟล์ VNC บน Android (VNC Viewer, bVNC ฯลฯ) ไปยังเครื่องโฮสต์ในเครื่อง สิ่งที่คุณเห็นบนหน้าจอคือเดสก์ท็อประยะไกลที่กำลังทำงานอยู่บนโทรศัพท์นั่นเอง เรียบง่ายและใช้งานร่วมกันได้ดี แม้ว่าประสิทธิภาพอาจมีข้อจำกัดอยู่บ้าง
วิธีที่สองคือการใช้ X server ที่ออกแบบมาสำหรับ Android เช่น XSเซิร์ฟเวอร์ XSDLในกรณีนี้ เซิร์ฟเวอร์กราฟิกทำงานในรูปแบบแอปพลิเคชัน Android และระบบปฏิบัติการ Linux ทำหน้าที่เป็นไคลเอ็นต์ X โดยเชื่อมต่อกับเซิร์ฟเวอร์กราฟิก วิธีนี้มักให้ประสิทธิภาพที่ดีกว่าการใช้ VNC โดยตรง แต่ต้องมีการตั้งค่าเพิ่มเติม (ตัวแปร DISPLAY พอร์ต ฯลฯ)
ทางเลือกสำหรับผู้ที่ไม่ใช้สิทธิ์ root: PROot ช่วยคุณได้
หากคุณไม่ต้องการรูทอุปกรณ์หรือยุ่งยากกับการปลดล็อกบูตโหลดเดอร์ มีแอปพลิเคชันหลายตัวที่สามารถบูตระบบปฏิบัติการแบบเต็มรูปแบบได้ หลักฐานในพื้นที่ผู้ใช้ระบบ Android ยังคงทำงานได้อย่างสมบูรณ์ และ Linux ถูกห่อหุ้มไว้ราวกับเป็นตู้คอนเทนเนอร์ขนาดใหญ่

Andronix + Termux + โปรแกรมดู VNC
การผสมผสานที่ได้รับความนิยมอย่างมากคือการผสม Andronix, Termux และโปรแกรมดูไฟล์ VNCTermux ให้บริการเทอร์มินัลขั้นสูงและคลังซอฟต์แวร์ ในขณะที่ Andronix ช่วยแนะนำการดาวน์โหลดและการติดตั้งดิสโทรภายในสภาพแวดล้อม PROot
ขั้นตอนโดยทั่วไปนั้นง่ายมาก: คุณทำการติดตั้ง Andronix, Termux และ VNC Viewerใน Andronix คุณเลือกดิสทริบิวชันที่ต้องการ (Ubuntu, Debian, Manjaro, Kali ฯลฯ) และสภาพแวดล้อมเดสก์ท็อป (XFCE, LXDE…) คัดลอกคำสั่งที่แอปสร้างขึ้น วางลงใน Termux แล้วรอจนกว่าระบบไฟล์จะถูกดาวน์โหลดและแตกไฟล์
ในตอนท้าย คุณจะทำการตั้งค่า รหัสผ่านและความละเอียดของ VNCคุณเริ่มเซิร์ฟเวอร์แบบกราฟิกจากเซสชัน Linux และเชื่อมต่อด้วย VNC Viewer ไปยังที่อยู่เช่น localhost:1 สิ่งที่ปรากฏคือเดสก์ท็อป Linux จริงๆ ที่เคลื่อนไหวอยู่ภายในอุปกรณ์พกพา สามารถเข้าถึงได้ผ่านเทอร์มินัลและ GUI โดยไม่ต้องแตะต้องสิทธิ์ root
ทางเลือกอื่นๆ ที่ไม่ต้องใช้ root: UserLAND, AnLinux, Debian Noroot…
นอกจาก Andronix แล้ว ยังมีระบบนิเวศของแอปพลิเคชันต่างๆ ที่ใช้ Andronix เป็นพื้นฐานอีกมากมาย โปรสำหรับเวอร์ชันสมบูรณ์ของระบบปฏิบัติการ โดยไม่ต้องใช้สิทธิ์ผู้ดูแลระบบ แต่ละแบบมีลักษณะเฉพาะของตัวเอง แต่โดยรวมแล้วมีแนวคิดหลักเดียวกัน
UserLAND นี่เป็นหนึ่งในตัวเลือกที่ใช้งานง่ายและเป็นโอเพนซอร์สมากที่สุด ช่วยให้คุณสามารถติดตั้ง Debian, Ubuntu, Arch, Kali หรือ Alpine และมีทั้งเซสชันเดสก์ท็อป (LXDE, XFCE4) และการติดตั้งแอปพลิเคชันแต่ละตัว เช่น Firefox หรือ LibreOffice แทนที่จะติดตั้งทั้งระบบ
ส่วนติดต่อผู้ใช้ของมันถูกจัดแบ่งออกเป็นส่วนต่างๆ ดังนี้ แอปพลิเคชัน เซสชัน และระบบไฟล์ในส่วนแอปพลิเคชัน คุณเลือกสิ่งที่จะติดตั้ง ในส่วนเซสชัน คุณจัดการการเชื่อมต่อที่ใช้งานอยู่ (VNC, SSH, XSDL) และในส่วนระบบไฟล์ คุณจะเห็นไดเร็กทอรีรูทของ Linux ที่คุณสร้างไว้ ซึ่งช่วยให้คุณสามารถมีหลายเซสชันกับการติดตั้งเดียวกัน โดยใช้วิธีการเข้าถึงที่แตกต่างกันได้
แอนลินุกซ์ หลักการทำงานคล้ายคลึงกัน โดยอาศัย Termux เป็นหลัก แอปจะสร้างสคริปต์ที่ทำงานใน Termux เพื่อติดตั้ง Ubuntu, Debian, Fedora, CentOS, openSUSE หรือ Kali ภายในสภาพแวดล้อม Proot นอกจากนี้ยังนำเสนอเดสก์ท็อปขนาดเล็ก เช่น XFCE4, MATE, LXQt หรือ LXDE ซึ่งเหมาะสำหรับอุปกรณ์พกพาที่มี RAM จำกัด
เดเบียน โนรูท มันใช้งานได้จริง: มันบูตระบบ Debian ที่มีน้ำหนักเบาและไม่ต้องรูทเครื่อง บน Android 4.1 หรือสูงกว่า มันอาจมีความยืดหยุ่นน้อยกว่า และประสิทธิภาพอาจไม่โดดเด่นมากนัก แต่การติดตั้งนั้นง่ายมาก หากคุณต้องการลองใช้ Debian โดยไม่ต้องยุ่งยากมากนัก
ติดตั้ง Linux ด้วยสิทธิ์ root โดยใช้ Linux Deploy
เมื่ออุปกรณ์ได้รับการรูทแล้ว มันจะเปิดประตูสู่โซลูชันที่มีประสิทธิภาพมากขึ้น และนี่คือหัวใจสำคัญของโซลูชันนั้น ปรับใช้ Linuxแอปนี้ใช้ chroot ร่วมกับ BusyBox เพื่อติดตั้ง Debian, Ubuntu, Arch, Fedora และดิสโทรอื่นๆ ลงในพื้นที่จัดเก็บข้อมูลของโทรศัพท์โดยตรง พร้อมการควบคุมอย่างมากเกี่ยวกับวิธีการเมานต์และบูตระบบเหล่านั้น
เมื่อเวลาผ่านไป Linux Deploy ก็ได้รับความนิยมมากขึ้น อินเทอร์เฟซ โปรไฟล์ และตัวเลือกที่ดีกว่าปัจจุบัน คุณสามารถเลือกดิสโทร ประเภทการติดตั้ง ระบบไฟล์ เปิดหรือปิดใช้งาน GUI กำหนดสคริปต์บูตแบบกำหนดเอง และเปิดใช้งานการเริ่มต้นอัตโนมัติเมื่ออุปกรณ์พกพารีสตาร์ทได้
ข้อกำหนดพื้นฐานสำหรับการใช้งาน Linux Deploy
ก่อนอื่น คุณต้องมี Android ที่ผ่านการรูทและอัปเดต BusyBox แล้วBusyBox มีโปรแกรมยูทิลิตี้ Unix มากมายที่ Linux Deploy ใช้ภายในเพื่อจัดการ chroot ติดตั้งจากแหล่งที่เชื่อถือได้ ให้สิทธิ์ผู้ใช้ระดับสูงสุด และตรวจสอบว่าได้กำหนดค่าอย่างถูกต้องแล้ว
นอกจากนี้คุณยังต้องมี โปรแกรมดูไฟล์ VNC สำหรับ Androidเช่น VNC Viewer ซึ่งเป็นโปรแกรมฟรีและใช้งานได้ดีมากสำหรับการเชื่อมต่อกับเดสก์ท็อปแบบกราฟิกของระบบปฏิบัติการที่ติดตั้งไว้ แม้ว่า Linux Deploy จะมีโหมด X11 ให้ใช้งานด้วย แต่โดยทั่วไปแล้ว VNC เป็นจุดเริ่มต้นที่ง่ายที่สุด
ในส่วนของความเข้ากันได้กับ Android นั้น Linux Deploy ระบุว่ารองรับตั้งแต่ Android 2.3.3อย่างไรก็ตาม บนฮาร์ดแวร์ที่เก่าเช่นนั้น ประสบการณ์การใช้งานมักจะค่อนข้างแย่ ทางที่ดีควรใช้อุปกรณ์ที่ค่อนข้างทันสมัย มี RAM อย่างน้อย 1 GB พื้นที่ว่างหลายกิกะไบต์ (ไม่ว่าจะเป็นภายในเครื่องหรือการ์ด microSD ที่เร็ว) และการเชื่อมต่อข้อมูลที่ดี เพราะคุณจะต้องดาวน์โหลดอิมเมจ ARM ที่มีขนาดหลายร้อยเมกะไบต์หรืออาจถึงหลายกิกะไบต์
กำหนดค่าการแจกจ่าย การจัดเก็บ และ GUI
เมื่อคุณเปิด Linux Deploy คุณจะเห็นหน้าจอหลักที่มีปุ่มต่างๆ ปุ่มเริ่ม/หยุด และไอคอนการตั้งค่า ด้านล่างสุด คุณจะเข้าถึงคุณสมบัติการติดตั้งได้ที่นั่น ซึ่งคุณสามารถเลือกได้ว่าจะติดตั้งระบบปฏิบัติการ Linux รุ่นใดและวิธีการติดตั้งอย่างไร
ในส่วนนี้คุณสามารถเลือกได้ ดิสโทร (Debian, Ubuntu, Arch, Fedora…)ต้องระบุสถาปัตยกรรม (arm, arm64, armhf, armel ฯลฯ) และเส้นทางของระบบไฟล์ ทั้งในขั้นตอนการดาวน์โหลดและการสร้างอิมเมจสุดท้าย การเลือกสถาปัตยกรรมที่ตรงกับโปรเซสเซอร์ของคุณเป็นสิ่งสำคัญเพื่อหลีกเลี่ยงข้อผิดพลาดที่ไม่ปกติระหว่างการติดตั้ง
รูปแบบการติดตั้งที่พบได้บ่อยที่สุดคือ “ไฟล์ภาพหมายความว่าระบบปฏิบัติการ Linux จะถูกติดตั้งอยู่ในไฟล์เดียวในรูปแบบ EXT2, EXT4 หรือรูปแบบอื่นๆ สำหรับผู้ใช้ส่วนใหญ่ นี่เป็นตัวเลือกที่ง่ายที่สุดเมื่อเทียบกับการใช้พาร์ติชั่นเฉพาะ ซึ่งต้องใช้ความเชี่ยวชาญมากกว่า
ด้านล่างนี้คุณสามารถเลือกได้ ประเภทระบบไฟล์ (โดยปกติแล้ว EXT2 จะใช้งานได้ดี) และตัดสินใจว่าจะจัดเก็บภาพไว้ในหน่วยความจำภายในหรือใน microSD การ์ด หาก microSD การ์ดมีคุณภาพดี นี่เป็นวิธีที่ใช้งานได้จริงเพื่อหลีกเลี่ยงการเต็มของหน่วยความจำหลักของโทรศัพท์
ในส่วน GUI คุณสามารถ เปิดใช้งานหรือปิดใช้งานส่วนติดต่อผู้ใช้แบบกราฟิกหากคุณเปิดใช้งานฟังก์ชันนี้ Linux Deploy จะเตรียมสภาพแวดล้อมเดสก์ท็อปแบบเบาและกำหนดค่าการเข้าถึง VNC ในขั้นตอนนี้ คุณยังสามารถเลือกสภาพแวดล้อมที่จะติดตั้ง (LXDE, XFCE เป็นต้น) และชื่อผู้ใช้และรหัสผ่านสำหรับเซสชันกราฟิกได้อีกด้วย
ติดตั้งและบูตระบบปฏิบัติการด้วย Linux Deploy
เมื่อคุณตั้งค่าต่างๆ เสร็จเรียบร้อยแล้ว ก็ถึงเวลาเริ่มใช้งาน การติดตั้งระบบจำหน่ายจากเมนูที่มุมบนขวามือ คุณจะพบตัวเลือก "ติดตั้ง" ซึ่งจะเริ่มการดาวน์โหลดและการตั้งค่าอิมเมจ
กระบวนการนี้อาจใช้เวลาตั้งแต่ไม่กี่นาทีไปจนถึงครึ่งชั่วโมงหรือนานกว่านั้น ขึ้นอยู่กับการเชื่อมต่ออินเทอร์เน็ตและประสิทธิภาพของอุปกรณ์ของคุณ ในระหว่างนี้ ระบบพื้นฐานจะถูกดาวน์โหลด แตกไฟล์ กำหนดค่า chroot และติดตั้งแพ็กเกจที่คุณเลือกไว้
เมื่อกระบวนการเสร็จสมบูรณ์แล้ว สิ่งที่เหลืออยู่ก็คือการเดินหน้าต่อไป เริ่มระบบLinux Deploy จะทำการเมานต์อิมเมจ เริ่มบริการที่กำหนดไว้ และหากคุณเปิดใช้งาน GUI ก็จะเริ่มเซิร์ฟเวอร์ VNC ภายใน chroot ด้วย ในโปรแกรมดู VNC ให้สร้างการเชื่อมต่อกับที่อยู่ IP และพอร์ตที่แสดงโดย Linux Deploy (ตัวอย่างเช่น 127.0.0.1:5900) และหลังจากป้อนรหัสผ่านแล้ว คุณควรจะเห็นเดสก์ท็อป Linux แบบเต็มรูปแบบทำงานบนอุปกรณ์ Android ของคุณ
ใช้ Linux Deploy ร่วมกับ X11 แทน VNC
ประเด็นหนึ่งที่ก่อให้เกิดคำถามมากมายคือ วิธีการ ใช้ Linux Deploy ร่วมกับ X11 Direct แทนที่จะใช้ VNC เพื่อหลีกเลี่ยงการพึ่งพาเซิร์ฟเวอร์ VNC ภายในระบบปฏิบัติการอยู่เสมอ เป็นเรื่องปกติมากที่จะติดตั้ง SSH และสภาพแวดล้อมเดสก์ท็อปได้สำเร็จ แต่คำสั่ง startx กลับล้มเหลวหรือดูเหมือนว่า "ไม่มีอะไรเริ่มต้นเลย"
แนวคิดหลักคือการรวมเอา X server สำหรับ Android (XServer XSDL type) เมื่อตั้งค่า Linux Deploy ในโหมด X11 แล้ว ระบบปฏิบัติการควรจะเรียกใช้เดสก์ท็อปโดยชี้ไปยังเซิร์ฟเวอร์ X ภายนอกแทนที่จะใช้ Xvnc ปัญหาโดยทั่วไปมักอยู่ที่รายละเอียดต่างๆ เช่น ตัวแปร DISPLAY ที่อยู่ IP และพอร์ตที่ XSDL กำลังทำงานอยู่ หรือคำสั่งที่ใช้ในการเริ่มต้นสภาพแวดล้อมเดสก์ท็อปอย่างถูกต้อง
ในหลายกรณี การเรียกใช้ startx ผ่าน SSH โดยไม่มี X server ที่สามารถเข้าถึงได้จะไม่ทำงาน แม้ว่าเดสก์ท็อปจะดูเหมือนติดตั้งอย่างถูกต้องแล้วก็ตาม คุณต้องตรวจสอบว่า... Android X server กำลังทำงานอยู่Linux Deploy ถูกตั้งค่าให้ใช้งาน และสภาพแวดล้อมกราฟิก (XFCE, LXDE, MATE ฯลฯ) จะถูกเรียกใช้งานโดยตรงบน X11 สถานการณ์นี้มีความละเอียดอ่อนกว่า VNC และอาจต้องตรวจสอบทั้งเอกสารของ Linux Deploy และเอกสารของเซิร์ฟเวอร์ X ที่คุณใช้งานอยู่
การตั้งค่าเว็บเซิร์ฟเวอร์และบริการอื่นๆ บนอุปกรณ์เคลื่อนที่
เมื่อระบบปฏิบัติการทำงานเรียบร้อยแล้ว คุณสามารถ... การติดตั้งบริการต่างๆ นั้นเหมือนกับการติดตั้งบนระบบ Linux ทั่วไปคุณสามารถใช้ apt, pacman หรือตัวจัดการแพ็กเกจของระบบเพื่อเพิ่ม Apache, Nginx, MySQL/MariaDB, FTP, Samba, SSH และสิ่งอื่นๆ ที่คุณต้องการได้
ตัวอย่างเช่น ใน Debian หรือ Ubuntu จะมีการติดตั้งเว็บเซิร์ฟเวอร์พื้นฐานพร้อมแพ็กเกจต่างๆ เช่น Apache2 หรือ Nginxจากนั้นคุณควบคุม daemon ด้วยคำสั่ง `service` หรือ `systemctl` ขึ้นอยู่กับการตั้งค่าสภาพแวดล้อม chroot ของคุณ คำสั่งอย่าง `service apache2 start` และ `service apache2 stop` มักจะทำงานได้โดยไม่มีความยุ่งยากเพิ่มเติมใดๆ
ข้อจำกัดเพียงอย่างเดียวคือ มันอยู่ภายใน chroot ที่จัดการโดย Linux Deploy การเริ่มต้นบริการอัตโนมัติ เมื่อเริ่มต้นใช้งานสภาพแวดล้อมนั้น มันไม่ได้ทำงานเหมือนเซิร์ฟเวอร์ทั่วไปเสมอไป คุณอาจเปิดใช้งาน Apache ใน rcconf หรือใน runlevel ที่ถูกต้องแล้ว แต่ก็ยังอาจไม่เริ่มต้นทำงานเมื่อ chroot บูตขึ้นมา
สคริปต์เริ่มต้นอัตโนมัติใน Linux Deploy
เพื่อแก้ไขพฤติกรรมนี้ Linux Deploy จึงมีตัวเลือกให้ใช้งานดังนี้ “สคริปต์ที่กำหนดเอง” ในคุณสมบัติการเปิดใช้งานจะทำให้มีรายการที่คุณสามารถเพิ่มเส้นทางไปยังสคริปต์ที่จะทำงานทุกครั้งที่สภาพแวดล้อม Linux เริ่มทำงาน
แนวคิดคือการเพิ่มเส้นทางลงในสคริปต์เริ่มต้นการทำงานที่นั่น Apache, MySQL, cron และบริการอื่นๆ ที่คุณต้องการให้พร้อมใช้งานได้ทันที แต่ละรายการในรายการจะชี้ไปยังสคริปต์จริงภายในระบบไฟล์ของดิสโทร ซึ่งจะถูกเรียกใช้งานตามลำดับที่แสดง
ด้วยวิธีนี้ คุณจะไม่ต้องพึ่งพา rcconf หรือลิงก์ใน /etc/rc*.d เพียงอย่างเดียว ซึ่งในสภาพแวดล้อม chroot อาจไม่ทำงานเหมือนกับการบูตเครื่องแบบดั้งเดิม การใช้สคริปต์แบบกำหนดเองจะช่วยให้มั่นใจได้ว่า... เว็บเซิร์ฟเวอร์จะเริ่มต้นโดยอัตโนมัติ เมื่อ Linux Deploy เริ่มทำงาน ซึ่งเป็นสิ่งสำคัญหากคุณต้องการซ่อนโทรศัพท์มือถือไว้รอบบ้านเพื่อทำหน้าที่เป็นเซิร์ฟเวอร์ที่พร้อมใช้งานตลอดเวลา
การตั้งค่า Linux Deploy และ Android เพื่อใช้โทรศัพท์มือถือของคุณเป็นเซิร์ฟเวอร์
ถ้าคุณต้องการให้โทรศัพท์ทำงานเหมือนกับ... เซิร์ฟเวอร์ Linux 24/7การติดตั้งดิสโทรอย่างเดียวไม่เพียงพอ คุณต้องปรับแต่งพารามิเตอร์บางอย่างของ Linux Deploy และ Android เพื่อป้องกันไม่ให้ระบบเข้าสู่โหมดสลีปเร็วเกินไป หรือป้องกันไม่ให้ WiFi หลุดเมื่อคุณปิดหน้าจอ
ในหน้าจอการตั้งค่าทั่วไปของ Linux Deploy (ซึ่งแยกจากคุณสมบัติของดิสโทร) คุณสามารถเปลี่ยนค่าต่างๆ ได้ ภาษา, ธีมภาพ และที่สำคัญที่สุดคือพฤติกรรมของหน้าจอและ Wi-Fi โดยปกติแล้ว แอปพลิเคชันจะมีตัวเลือก "ล็อกหน้าจอ" เลือกไว้ ซึ่งจะทำให้หน้าจอเปิดอยู่ตลอดเวลาขณะที่ Linux กำลังทำงาน
การเปิดหน้าจอทิ้งไว้ตลอดเวลาเป็นความคิดที่ไม่ดี หากคุณจะใช้โทรศัพท์เป็นเซิร์ฟเวอร์อย่างต่อเนื่อง: มันกินพลังงานแบตเตอรี่มากและก่อให้เกิดความร้อน และยังเร่งการสึกหรอของแผงหน้าจออีกด้วย วิธีที่เหมาะสมคือยกเลิกการเลือกตัวเลือกนั้นเพื่อให้หน้าจอปิดโดยอัตโนมัติ จากนั้นหาวิธีอื่นเพื่อป้องกันไม่ให้โปรเซสเซอร์เข้าสู่โหมดประหยัดพลังงานขั้นสูง
อีกตัวเลือกที่สำคัญคือกล่องสำหรับ “บล็อก Wi-Fi” หรือการตั้งค่าที่คล้ายกัน ซึ่งควรเปิดใช้งานไว้ เพื่อป้องกันไม่ให้ Android ตัดการเชื่อมต่อไร้สายหลังจากปิดหน้าจอไปสักพัก หาก Wi-Fi ขัดข้อง เซิร์ฟเวอร์ของคุณจะหายไปจากเครือข่ายโดยไม่มีการแจ้งเตือนล่วงหน้า
สุดท้ายนี้ ขอแนะนำอย่างยิ่งให้เปิดใช้งาน Linux Deploy “Autoboot”ดังนั้น ทุกครั้งที่คุณรีสตาร์ทโทรศัพท์ แอปจะเปิดใช้งานระบบปฏิบัติการและเรียกใช้สคริปต์ที่กำหนดเองโดยอัตโนมัติ ด้วยวิธีนี้ คุณจึงไม่ต้องจำที่จะเปิดใช้งานสภาพแวดล้อมด้วยตนเองหลังจากรีสตาร์ททุกครั้ง
รักษาการทำงานของโปรเซสเซอร์ให้ตื่นอยู่เสมอแม้หน้าจอจะปิดอยู่
เนื่องจาก Android จะทำให้โปรเซสเซอร์เข้าสู่โหมด "พักเครื่อง" เมื่อหน้าจอปิดลง ประสิทธิภาพของ Linux ใน chroot จึงอาจลดลงได้ จะช้าอย่างน่าหงุดหงิดหากคุณไม่ทำอะไรเลยคุณไม่ต้องการให้หน้าจอเปิดอยู่ตลอดเวลา แต่คุณก็ไม่ต้องการให้ CPU เข้าสู่โหมดประหยัดพลังงานโดยสมบูรณ์เช่นกัน
วิธีแก้ปัญหาทั่วไปคือการใช้แอปพลิเคชัน เช่น “อย่าหลับ” โปรแกรมที่ช่วยให้โปรเซสเซอร์ทำงานอยู่ตลอดเวลาแม้หน้าจอจะปิดอยู่ หนึ่งในโปรแกรมที่กล่าวถึงในคู่มือบางฉบับคือ “RedEye Stay Awake” ซึ่งมีเวอร์ชันฟรีที่แสดงโฆษณา และช่วยป้องกันไม่ให้ CPU เข้าสู่โหมดประหยัดพลังงานขั้นสุดขณะที่แอปทำงานอยู่
เมื่อรวมแอปนั้น (หรือแอปที่คล้ายกัน) เข้ากับการบล็อก WiFi ของ Linux Deploy คุณจะได้ผลลัพธ์ดังนี้ โทรศัพท์มือถือยังคงตอบสนองอย่างรวดเร็ว มันสามารถจัดการคำขอเว็บหรือการเชื่อมต่อ SSH ได้ แม้ในขณะที่หน้าจอปิดอยู่ นี่เป็นเทคนิคสำคัญหากคุณต้องการให้โทรศัพท์ของคุณทำหน้าที่เป็นเซิร์ฟเวอร์ที่เสถียรโดยไม่ต้องเปิดหน้าจอทิ้งไว้ตลอดเวลาเหมือนไฟฉาย
รูปแบบและภาพพื้นหลังที่แนะนำสำหรับอุปกรณ์พกพา
การเลือกใช้ดิสโทรมีผลอย่างมากต่อ... เสถียรภาพและการใช้ทรัพยากรเครื่องมือที่กล่าวถึงโดยทั่วไปรองรับระบบปฏิบัติการ Ubuntu, Debian, Arch, Fedora, Kali, Alpine, Manjaro และเวอร์ชันอื่นๆ อีกหลายเวอร์ชัน
Ubuntu และ Debian นี่คือตัวเลือกที่ได้รับความนิยมและใช้งานง่ายที่สุด มีคลังซอฟต์แวร์ขนาดใหญ่ บทช่วยสอนมากมาย และการทำงานร่วมกับเว็บเซิร์ฟเวอร์ (Apache, Nginx) ฐานข้อมูล (MariaDB, PostgreSQL) และภาษาโปรแกรม (PHP, Python, Node.js ฯลฯ) ได้อย่างยอดเยี่ยม เหมาะสำหรับเซิร์ฟเวอร์ส่วนตัวหรือสภาพแวดล้อมการทดสอบ
Kali Linux โทรศัพท์รุ่นนี้เน้นด้านความปลอดภัยและการทดสอบการเจาะระบบ ดังนั้นจึงเหมาะอย่างยิ่งหากคุณต้องการ "โทรศัพท์เจาะระบบ" ที่มีเครื่องมือตรวจสอบพร้อมใช้งาน อย่างไรก็ตาม การใช้งานอาจต้องอาศัยประสบการณ์และการจัดการอย่างระมัดระวังมากขึ้น
Arch Linux และ Manjaro กลุ่มเป้าหมายคือผู้ใช้ขั้นสูงที่มองหาระบบปฏิบัติการแบบ Rolling Release ที่ปรับแต่งได้สูง พร้อมด้วยแพ็กเกจล่าสุด Fedora จัดอยู่ในหมวดหมู่ดิสโทรสมัยใหม่ แม้ว่าจะไม่ปรากฏในแอปพลิเคชันที่ไม่ต้องใช้สิทธิ์ Root ทุกแอปก็ตาม
สำหรับอุปกรณ์ที่มีทรัพยากรจำกัด อัลไพน์ลินุกซ์ นี่คือทางเลือกที่มีน้ำหนักเบาเป็นพิเศษ ออกแบบมาสำหรับคอนเทนเนอร์และสภาพแวดล้อมที่มีทรัพยากรจำกัด ด้วยการเลือกใช้แพ็กเกจที่เหมาะสม คุณสามารถตั้งค่าเว็บเซิร์ฟเวอร์ที่มีประสิทธิภาพสูงโดยใช้หน่วยความจำน้อยมาก
สำหรับสภาพแวดล้อมเดสก์ท็อป ขอแนะนำให้เลือกตัวเลือกต่างๆ แสงไฟแบบ LXDE, XFCE, LXQt หรือ MATEสภาพแวดล้อมเดสก์ท็อปที่ใช้ทรัพยากรมาก (เช่น GNOME, KDE Plasma) มักจะใช้ RAM และ CPU มากเกินไป ซึ่งเป็นสิ่งที่สังเกตได้ชัดเจนบนอุปกรณ์พกพา โดยเฉพาะอย่างยิ่งหากคุณใช้งานผ่าน VNC
ข้อผิดพลาดทั่วไปของ VNC และวิธีแก้ไข
เมื่อทำการเชื่อมต่อเดสก์ท็อปแบบกราฟิกผ่าน VNC อาจเกิดข้อผิดพลาดดังต่อไปนี้: ECONNREFUSED ที่พอร์ต 5900 เมื่อพยายามเชื่อมต่อจากโปรแกรมดูภาพ โดยปกติแล้วนี่แสดงว่าเซิร์ฟเวอร์ VNC ไม่ได้เปิดใช้งานอยู่ ใช้พอร์ตอื่น หรือเซสชันเริ่มต้นไม่ถูกต้อง
วิธีหนึ่งที่จะทำให้สถานการณ์ชัดเจนขึ้นคือ เริ่มจากการพิจารณาจากภายในก่อน SSH ไปยังสภาพแวดล้อม Linux (ConnectBot, JuiceSSH) และตรวจสอบด้วยตนเองว่าเซิร์ฟเวอร์ VNC กำลังทำงานอยู่หรือไม่ บางครั้งการเรียกใช้คำสั่ง `vncserver` ภายในเซสชันก็เพียงพอที่จะกำหนดจอแสดงผลและพอร์ต จากนั้นเชื่อมต่อโปรแกรมดู VNC กับพอร์ตที่กำหนดนั้น
เป็นไปได้เช่นกันว่าปัญหาเกิดจากการมี ติดตั้งดิสโทรโดยไม่มีสภาพแวดล้อมแบบกราฟิก หรืออาจใช้กับสภาพแวดล้อมเดสก์ท็อปที่ไม่เข้ากันได้ดี ในบางกรณี การผสมผสาน Debian หรือ Ubuntu เวอร์ชันเก่ากับสภาพแวดล้อมอย่าง MATE อาจก่อให้เกิดปัญหามากกว่าการใช้เดสก์ท็อปขนาดเล็กอย่าง LXDE ซึ่งมักทำงานได้ดีกว่าในระบบประเภทนี้
อีกประเด็นหนึ่งคือขนาดของรูปภาพ: หากพื้นที่ในรูปภาพไม่เพียงพอ IMG ที่ซึ่ง Linux อาศัยอยู่คุณจะไม่สามารถติดตั้งแพ็กเกจเพิ่มเติมหรือจัดเก็บข้อมูลได้มากนัก ขอแนะนำให้สร้างอิมเมจที่มีขนาดใหญ่กว่า 2 GB หากคุณต้องการติดตั้งมากกว่าระบบพื้นฐาน เพื่อสำรองพื้นที่สำหรับแอปพลิเคชันและไฟล์ต่างๆ
นอกเหนือจากเว็บเซิร์ฟเวอร์: คุณสามารถทำอะไรได้บ้างด้วย 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 ที่มีความสามารถอย่างน่าประหลาดใจเหมาะอย่างยิ่งสำหรับการเรียนรู้ การทดลอง และการพกพาห้องปฏิบัติการส่วนตัวติดตัวไปได้ทุกที่ โดยไม่ต้องเสียเงินซื้อฮาร์ดแวร์เฉพาะทาง หรือต้องยุ่งยากกับการติดตั้งที่ยุ่งยากและใช้เวลานาน
