เปลี่ยนสมาร์ทโฟนให้เป็นเซิร์ฟเวอร์ส่วนตัว: คู่มือฉบับสมบูรณ์

เคยคิดไหมว่าสมาร์ทโฟนเครื่องเก่าที่วางทิ้งไว้ในลิ้นชัก อาจมีศักยภาพมากกว่าแค่การเป็นโทรศัพท์? หากคุณกำลังมองหาทางเลือกที่ประหยัดและมีประสิทธิภาพในการรันโครงสร้างพื้นฐานส่วนตัว แทนที่จะต้องจ่ายค่าเช่าเซิร์ฟเวอร์คลาวด์ราคาแพง บทความนี้จะพาคุณไปสำรวจการเปลี่ยนสมาร์ทโฟน CMF Phone 1 ให้กลายเป็นเซิร์ฟเวอร์ที่ทรงพลังได้อย่างน่าทึ่ง

ทำไมต้องเปลี่ยนสมาร์ทโฟนให้เป็นเซิร์ฟเวอร์?

หลายคนอาจมองว่าการนำสมาร์ทโฟนมาใช้เป็นเซิร์ฟเวอร์เป็นเรื่องแปลก แต่เบื้องหลังแนวคิดนี้คือความต้องการที่จะ ลดค่าใช้จ่าย โดยเฉพาะสำหรับผู้ที่เคยใช้บริการเซิร์ฟเวอร์เสมือน (VPS) ที่ต้องจ่ายเป็นรายเดือน แม้ว่า VPS ราคาประหยัดจะเพียงพอสำหรับการใช้งานทั่วไป แต่เมื่อต้องรันแอปพลิเคชันที่ต้องการทรัพยากรมากขึ้น เช่น เว็บเบราว์เซอร์ที่ต้องทำงานหนักๆ ประสิทธิภาพก็จะลดลงอย่างเห็นได้ชัด

การซื้อฮาร์ดแวร์ใหม่ก็ไม่ใช่ทางออกที่ดีนักในสภาวะที่ราคาชิ้นส่วนอิเล็กทรอนิกส์สูงขึ้น การมองหาอุปกรณ์ที่มีอยู่แล้วอย่างสมาร์ทโฟน CMF Phone 1 ที่มีขุมพลังถึง 8 คอร์ ARM, RAM 8GB, พื้นที่เก็บข้อมูล 128GB, Wi-Fi 6, โมเด็ม 5G และแบตเตอรี่สำรองในตัว จึงเป็นทางเลือกที่น่าสนใจอย่างยิ่ง

ก้าวแรก: การติดตั้งระบบปฏิบัติการ Linux บนโทรศัพท์

แนวคิดแรกที่หลายคนอาจนึกถึงคือการแฟลชระบบปฏิบัติการ Linux แบบเต็มรูปแบบลงบนโทรศัพท์ โดย CMF Phone 1 มีพอร์ตสำหรับ postmarketOS ซึ่งเป็นระบบปฏิบัติการ Linux ที่ออกแบบมาสำหรับอุปกรณ์พกพา แต่การทดลองกลับพบว่า ฟีเจอร์สำคัญหลายอย่างยังทำงานได้ไม่สมบูรณ์ เช่น Wi-Fi, Bluetooth, การเร่งความเร็วฮาร์ดแวร์ (hardware acceleration) ทำให้โทรศัพท์ไม่สามารถใช้งานได้ทั้งในฐานะเซิร์ฟเวอร์และโทรศัพท์

การกู้คืนระบบปฏิบัติการ Android เดิมกลับมากลายเป็นภารกิจที่ต้องใช้ความพยายาม โดยต้องติดตั้ง Windows ใน QEMU, จัดการการส่งต่อ USB และไดรเวอร์ MediaTek จนสำเร็จ ซึ่งบทเรียนสำคัญที่ได้รับคือ Android มีไดรเวอร์ที่ทำงานได้สมบูรณ์แบบสำหรับฮาร์ดแวร์ทุกชิ้นของโทรศัพท์อยู่แล้ว การพยายามแทนที่ Android ด้วย Linux แบบดั้งเดิมจึงอาจไม่ใช่ทางออกที่ดีที่สุด

แนวทางใหม่: ใช้ Termux เป็นระบบปฏิบัติการหลัก

เมื่อการแฟลช Linux โดยตรงไม่ใช่วิธีที่เหมาะสม แนวทางที่สองคือการ คงระบบ Android เดิมไว้ แล้วใช้ Termux เป็นสภาพแวดล้อมในการรันแอปพลิเคชัน Linux

Termux เป็นแอปพลิเคชันที่มอบสภาพแวดล้อม Unix ที่ทรงพลังบน Android ทำให้สามารถติดตั้งเครื่องมือต่างๆ เช่น OpenSSH, runit (สำหรับจัดการเซอร์วิส), Caddy (เว็บเซิร์ฟเวอร์), Cloudflared (สำหรับทำ Tunnel) และระบบจัดการแพ็คเกจ

  • Termux:Boot ช่วยให้เซอร์วิสที่จำเป็น เช่น SSH เริ่มทำงานอัตโนมัติหลังการรีบูต
  • Tailscale ทำให้โทรศัพท์มีที่อยู่ IP ส่วนตัวที่เสถียร ทำให้สามารถเข้าถึงได้จากทุกที่ในเครือข่าย Tailscale

Termux ไม่ใช่ Virtual Machine แต่เป็นการรันแอปพลิเคชัน Linux โดยใช้เคอร์เนลของ Android ซึ่งข้อดีคือสามารถรันแอปพลิเคชัน Linux ที่ต้องการระบบไฟล์เฉพาะของตัวเองได้

การปรับแต่ง Android เพื่อการทำงานของเซิร์ฟเวอร์

เพื่อให้โทรศัพท์ทำงานเป็นเซิร์ฟเวอร์ได้อย่างราบรื่น จำเป็นต้องปรับแต่งการตั้งค่าบางอย่างของ Android:

  • ติดตั้ง Persistent Wake Lock: เพื่อให้หน้าจอไม่ดับและอุปกรณ์ไม่เข้าสู่โหมดพัก
  • ปิดการทำงานของ Light and Deep Idle: ป้องกันไม่ให้ระบบเข้าสู่โหมดประหยัดพลังงานที่อาจตัดการเชื่อมต่อ
  • ยกเว้น Termux, Termux:Boot, และ Tailscale จากข้อจำกัดเบื้องหลัง: เพื่อให้แอปพลิเคชันเหล่านี้ทำงานได้อย่างต่อเนื่อง
  • ปิดการจำกัด Child Process: เพื่อให้สามารถรันหลายโปรเซสได้
  • ป้องกันการระงับ Wi-Fi: เพื่อให้การเชื่อมต่อเครือข่ายไม่หลุด
  • ตั้งค่า Tailscale เป็น Always-on VPN: เพื่อให้การเชื่อมต่อ VPN คงที่ตลอดเวลา

กระบวนการทำงานเมื่อโทรศัพท์รีบูตจะเป็นดังนี้: Android บูต -> Always-on VPN ทำให้ Tailscale กลับมาทำงาน -> Termux:Boot เริ่ม runit -> runit เริ่มต้นทุกเซอร์วิสที่ตั้งค่าไว้ -> Health checks ตรวจสอบสถานะการทำงาน

การจัดการแอปพลิเคชันด้วย chroot

สำหรับแอปพลิเคชันส่วนใหญ่ที่มาในรูปแบบ Linux ARM64 OCI images การใช้ proot-distro สามารถทำให้รันบน Debian ได้อย่างง่ายดายโดยไม่ต้องเปลี่ยนแปลงแอปพลิเคชันมากนัก proot จะจำลองสภาพแวดล้อมระบบไฟล์ ทำให้โปรเซส Termux คิดว่ากำลังทำงานอยู่ภายในระบบไฟล์ Debian

อย่างไรก็ตาม สำหรับแอปพลิเคชันที่ต้องการประสิทธิภาพสูง เช่น เว็บเบราว์เซอร์ Surf การทำงานผ่าน proot อาจทำให้เกิดความล่าช้าเนื่องจากการแปลระบบไฟล์และระบบการทำงาน การ รูทโทรศัพท์ (Rooting) เพื่อให้สามารถใช้ chroot ได้อย่างแท้จริง จะทำให้แอปพลิเคชันเข้าถึงเคอร์เนลของ Android ได้โดยตรงผ่าน syscalls ซึ่งช่วยเพิ่มประสิทธิภาพได้อย่างมาก

เมื่อเส้นทางนี้มีความเสถียรแล้ว การย้ายแอปพลิเคชันขนาดเล็กอื่นๆ ที่เคยอยู่ภายใต้ proot มาใช้ chroot ด้วยก็เป็นทางเลือกที่ดี ทำให้ทั้งหมดทำงานในลักษณะเดียวกัน โดยไม่ต้องติดตั้ง Docker หรือคอมไพเลอร์ใดๆ บนโทรศัพท์

การจัดการโครงสร้างพื้นฐานด้วย Ansible

เพื่อให้การจัดการเซิร์ฟเวอร์โทรศัพท์เป็นไปอย่างเป็นระบบและไม่หลงลืมคำสั่งที่เคยใช้ไป จึงควรใช้เครื่องมืออย่าง Ansible ในการจัดการโครงสร้างพื้นฐานทั้งหมด ตั้งแต่เวอร์ชันของแอปพลิเคชัน, การตั้งค่าเซอร์วิส, การกำหนดเส้นทาง, การตั้งค่าพลังงาน, ไปจนถึงการตรวจสอบสถานะ

กระบวนการ Deploy จะทำโดย:

  1. ปักหมุด Release: กำหนดเวอร์ชันของแอปพลิเคชันด้วย digest หรือ checksum และติดตั้งในไดเรกทอรีที่มีเวอร์ชัน
  2. Atomic Current Symlink: ใช้ symlink ชี้ไปยังเวอร์ชันปัจจุบัน
  3. Rollback: หากเกิดข้อผิดพลาดในการติดตั้งหรือตรวจสอบสถานะ ระบบสามารถย้อนกลับไปยังเวอร์ชันก่อนหน้าได้
  4. Application Data: ข้อมูลแอปพลิเคชันจะถูกจัดเก็บแยกต่างหากจากเวอร์ชัน

หลังจากติดตั้งแอปพลิเคชัน Android ที่จำเป็น 3 ตัว, รูทโทรศัพท์, ให้สิทธิ์ Termux ในการเข้าถึง Superuser และอนุญาต SSH แล้ว Ansible จะจัดการส่วนที่เหลือทั้งหมด จากนั้นคุณสามารถสั่งให้ Ansible นำโครงสร้างพื้นฐานไปสู่สถานะที่ต้องการได้จากคอมพิวเตอร์ของคุณ

การจัดการการเข้าถึงเครือข่าย (Ingress)

ปัญหาต่อมาคือการทำให้เซิร์ฟเวอร์โทรศัพท์ที่อยู่หลังอินเทอร์เน็ตบ้านสามารถเข้าถึงได้จากภายนอก โดยไม่ต้องเปิดพอร์ตจำนวนมากบนเราเตอร์ และยังคงสามารถย้ายโทรศัพท์ไปยังเครือข่ายอื่นได้

  • HTTP Applications: ใช้ Cloudflare Tunnel โดย cloudflared จะสร้างการเชื่อมต่อขาออกเพียงครั้งเดียวจากโทรศัพท์ จากนั้น Cloudflare จะส่งต่อคำขอไปยังโฮสต์เนมที่ถูกต้อง และ Caddy จะจัดการเส้นทางไปยังเซอร์วิสที่ต้องการ วิธีนี้ทำให้ไม่ต้องตั้งค่าการ Forward Port บนเราเตอร์ และหากย้ายโทรศัพท์ไปเครือข่ายอื่น Tunnel ก็จะเชื่อมต่อใหม่ได้โดยอัตโนมัติ
  • Surf Remote Browser Backend: เนื่องจาก Surf ต้องมีการเชื่อมต่อแบบ Direct ที่มีความไวต่อ Latency และมีการ Terminate TLS เอง จึงต้องใช้วิธีการที่แตกต่างออกไป โดยใช้ Cloudflare DDNS ชี้ไปยัง Public IP ปัจจุบันของบ้าน และเราเตอร์จะ Forward Port ไปยัง Surf โดยตรง เมื่ออยู่ใน LAN ก็สามารถเชื่อมต่อได้ทันที สำหรับการใช้งานนอกบ้าน จะทำการ ห่อหุ้ม TLS stream ของ Surf ทั้งหมดไว้ภายใน WebSocket ทำให้ Cloudflare มองเห็นและส่งต่อ WebSocket ในขณะที่การเชื่อมต่อ Surf ยังคงเข้ารหัสแบบ End-to-End อยู่

สิ่งที่กำลังทำงานอยู่บนเซิร์ฟเวอร์โทรศัพท์

โครงสร้างพื้นฐานบนโทรศัพท์ประกอบด้วย 2 ชั้นหลัก:

  1. Android และ Termux: จัดการเรื่องฮาร์ดแวร์, เครือข่าย, การเข้าถึงจากภายนอก (Ingress), และการจัดการเซอร์วิส
  2. Linux Residents: รับระบบไฟล์ที่คาดหวัง และทำงานโดยไม่รบกวนระบบหลัก

แอปพลิเคชันหลักที่ทำงานอยู่คือ:

  • Surf: เว็บเบราว์เซอร์สำหรับ iPhone และ iPad โดยใช้ Chrome เวอร์ชัน ARM64 บนโทรศัพท์ และส่งวิดีโอ H.264 พร้อมรับคำสั่งจาก iPad mini
  • Personal Finance Tracker: โปรแกรมติดตามการเงินส่วนบุคคล

การเปลี่ยนสมาร์ทโฟนให้เป็นเซิร์ฟเวอร์ส่วนตัวนี้ ไม่เพียงแต่ช่วยประหยัดค่าใช้จ่าย แต่ยังเป็นการปลดล็อกศักยภาพของอุปกรณ์ที่เรามีอยู่ให้เกิดประโยชน์สูงสุดอีกด้วย

#สมาร์ทโฟน #เซิร์ฟเวอร์ #Termux #Ansible #Cloudflare

ขอบคุณ แหล่งข้อมูล
https://seg6.space/posts/phone-server/

เปลี่ยนสมาร์ทโฟนให้เป็นเซิร์ฟเวอร์ส่วนตัว: คู่มือฉบับสมบูรณ์เคยคิดไหมว่าสมาร์ทโฟนเครื่องเก่าที่วางทิ้งไว้ในลิ้นชัก อาจมีศักยภาพมากกว่าแค่การเป็นโทรศัพท์? หากคุณกำลังมองหาทางเลือกที่ประหยัดและมีประสิทธิภาพในการรันโครงสร้างพื้นฐานส่วนตัว แทนที่จะต้องจ่ายค่าเช่าเซิร์ฟเวอร์คลาวด์ราคาแพง บทความนี้จะพาคุณไปสำรวจการเปลี่ยนสมาร์ทโฟน CMF Phone 1 ให้กลายเป็นเซิร์ฟเวอร์ที่ทรงพลังได้อย่างน่าทึ่งทำไมต้องเปลี่ยนสมาร์ทโฟนให้เป็นเซิร์ฟเวอร์?หลายคนอาจมองว่าการนำสมาร์ทโฟนมาใช้เป็นเซิร์ฟเวอร์เป็นเรื่องแปลก แต่เบื้องหลังแนวคิดนี้คือความต้องการที่จะ ลดค่าใช้จ่าย โดยเฉพาะสำหรับผู้ที่เคยใช้บริการเซิร์ฟเวอร์เสมือน (VPS) ที่ต้องจ่ายเป็นรายเดือน แม้ว่า VPS ราคาประหยัดจะเพียงพอสำหรับการใช้งานทั่วไป แต่เมื่อต้องรันแอปพลิเคชันที่ต้องการทรัพยากรมากขึ้น เช่น เว็บเบราว์เซอร์ที่ต้องทำงานหนักๆ ประสิทธิภาพก็จะลดลงอย่างเห็นได้ชัดการซื้อฮาร์ดแวร์ใหม่ก็ไม่ใช่ทางออกที่ดีนักในสภาวะที่ราคาชิ้นส่วนอิเล็กทรอนิกส์สูงขึ้น การมองหาอุปกรณ์ที่มีอยู่แล้วอย่างสมาร์ทโฟน CMF Phone 1 ที่มีขุมพลังถึง 8 คอร์ ARM, RAM 8GB, พื้นที่เก็บข้อมูล 128GB, Wi-Fi 6, โมเด็ม 5G และแบตเตอรี่สำรองในตัว จึงเป็นทางเลือกที่น่าสนใจอย่างยิ่งก้าวแรก: การติดตั้งระบบปฏิบัติการ Linux บนโทรศัพท์แนวคิดแรกที่หลายคนอาจนึกถึงคือการแฟลชระบบปฏิบัติการ Linux แบบเต็มรูปแบบลงบนโทรศัพท์ โดย CMF Phone 1 มีพอร์ตสำหรับ postmarketOS ซึ่งเป็นระบบปฏิบัติการ Linux ที่ออกแบบมาสำหรับอุปกรณ์พกพา แต่การทดลองกลับพบว่า ฟีเจอร์สำคัญหลายอย่างยังทำงานได้ไม่สมบูรณ์ เช่น Wi-Fi, Bluetooth, การเร่งความเร็วฮาร์ดแวร์ (hardware acceleration) ทำให้โทรศัพท์ไม่สามารถใช้งานได้ทั้งในฐานะเซิร์ฟเวอร์และโทรศัพท์การกู้คืนระบบปฏิบัติการ Android เดิมกลับมากลายเป็นภารกิจที่ต้องใช้ความพยายาม โดยต้องติดตั้ง Windows ใน QEMU, จัดการการส่งต่อ USB และไดรเวอร์ MediaTek จนสำเร็จ ซึ่งบทเรียนสำคัญที่ได้รับคือ Android มีไดรเวอร์ที่ทำงานได้สมบูรณ์แบบสำหรับฮาร์ดแวร์ทุกชิ้นของโทรศัพท์อยู่แล้ว การพยายามแทนที่ Android ด้วย Linux แบบดั้งเดิมจึงอาจไม่ใช่ทางออกที่ดีที่สุดแนวทางใหม่: ใช้ Termux เป็นระบบปฏิบัติการหลักเมื่อการแฟลช Linux โดยตรงไม่ใช่วิธีที่เหมาะสม แนวทางที่สองคือการ คงระบบ Android เดิมไว้ แล้วใช้ Termux เป็นสภาพแวดล้อมในการรันแอปพลิเคชัน LinuxTermux เป็นแอปพลิเคชันที่มอบสภาพแวดล้อม Unix ที่ทรงพลังบน Android ทำให้สามารถติดตั้งเครื่องมือต่างๆ เช่น OpenSSH, runit (สำหรับจัดการเซอร์วิส), Caddy (เว็บเซิร์ฟเวอร์), Cloudflared (สำหรับทำ Tunnel) และระบบจัดการแพ็คเกจTermux:Boot ช่วยให้เซอร์วิสที่จำเป็น เช่น SSH เริ่มทำงานอัตโนมัติหลังการรีบูตTailscale ทำให้โทรศัพท์มีที่อยู่ IP ส่วนตัวที่เสถียร ทำให้สามารถเข้าถึงได้จากทุกที่ในเครือข่าย TailscaleTermux ไม่ใช่ Virtual Machine แต่เป็นการรันแอปพลิเคชัน Linux โดยใช้เคอร์เนลของ Android ซึ่งข้อดีคือสามารถรันแอปพลิเคชัน Linux ที่ต้องการระบบไฟล์เฉพาะของตัวเองได้การปรับแต่ง Android เพื่อการทำงานของเซิร์ฟเวอร์เพื่อให้โทรศัพท์ทำงานเป็นเซิร์ฟเวอร์ได้อย่างราบรื่น จำเป็นต้องปรับแต่งการตั้งค่าบางอย่างของ Android:ติดตั้ง Persistent Wake Lock: เพื่อให้หน้าจอไม่ดับและอุปกรณ์ไม่เข้าสู่โหมดพักปิดการทำงานของ Light and Deep Idle: ป้องกันไม่ให้ระบบเข้าสู่โหมดประหยัดพลังงานที่อาจตัดการเชื่อมต่อยกเว้น Termux, Termux:Boot, และ Tailscale จากข้อจำกัดเบื้องหลัง: เพื่อให้แอปพลิเคชันเหล่านี้ทำงานได้อย่างต่อเนื่องปิดการจำกัด Child Process: เพื่อให้สามารถรันหลายโปรเซสได้ป้องกันการระงับ Wi-Fi: เพื่อให้การเชื่อมต่อเครือข่ายไม่หลุดตั้งค่า Tailscale เป็น Always-on VPN: เพื่อให้การเชื่อมต่อ VPN คงที่ตลอดเวลากระบวนการทำงานเมื่อโทรศัพท์รีบูตจะเป็นดังนี้: Android บูต -> Always-on VPN ทำให้ Tailscale กลับมาทำงาน -> Termux:Boot เริ่ม runit -> runit เริ่มต้นทุกเซอร์วิสที่ตั้งค่าไว้ -> Health checks ตรวจสอบสถานะการทำงานการจัดการแอปพลิเคชันด้วย chrootสำหรับแอปพลิเคชันส่วนใหญ่ที่มาในรูปแบบ Linux ARM64 OCI images การใช้ proot-distro สามารถทำให้รันบน Debian ได้อย่างง่ายดายโดยไม่ต้องเปลี่ยนแปลงแอปพลิเคชันมากนัก proot จะจำลองสภาพแวดล้อมระบบไฟล์ ทำให้โปรเซส Termux คิดว่ากำลังทำงานอยู่ภายในระบบไฟล์ Debianอย่างไรก็ตาม สำหรับแอปพลิเคชันที่ต้องการประสิทธิภาพสูง เช่น เว็บเบราว์เซอร์ Surf การทำงานผ่าน proot อาจทำให้เกิดความล่าช้าเนื่องจากการแปลระบบไฟล์และระบบการทำงาน การ รูทโทรศัพท์ (Rooting) เพื่อให้สามารถใช้ chroot ได้อย่างแท้จริง จะทำให้แอปพลิเคชันเข้าถึงเคอร์เนลของ Android ได้โดยตรงผ่าน syscalls ซึ่งช่วยเพิ่มประสิทธิภาพได้อย่างมากเมื่อเส้นทางนี้มีความเสถียรแล้ว การย้ายแอปพลิเคชันขนาดเล็กอื่นๆ ที่เคยอยู่ภายใต้ proot มาใช้ chroot ด้วยก็เป็นทางเลือกที่ดี ทำให้ทั้งหมดทำงานในลักษณะเดียวกัน โดยไม่ต้องติดตั้ง Docker หรือคอมไพเลอร์ใดๆ บนโทรศัพท์การจัดการโครงสร้างพื้นฐานด้วย Ansibleเพื่อให้การจัดการเซิร์ฟเวอร์โทรศัพท์เป็นไปอย่างเป็นระบบและไม่หลงลืมคำสั่งที่เคยใช้ไป จึงควรใช้เครื่องมืออย่าง Ansible ในการจัดการโครงสร้างพื้นฐานทั้งหมด ตั้งแต่เวอร์ชันของแอปพลิเคชัน, การตั้งค่าเซอร์วิส, การกำหนดเส้นทาง, การตั้งค่าพลังงาน, ไปจนถึงการตรวจสอบสถานะกระบวนการ Deploy จะทำโดย:ปักหมุด Release: กำหนดเวอร์ชันของแอปพลิเคชันด้วย digest หรือ checksum และติดตั้งในไดเรกทอรีที่มีเวอร์ชันAtomic Current Symlink: ใช้ symlink ชี้ไปยังเวอร์ชันปัจจุบันRollback: หากเกิดข้อผิดพลาดในการติดตั้งหรือตรวจสอบสถานะ ระบบสามารถย้อนกลับไปยังเวอร์ชันก่อนหน้าได้Application Data: ข้อมูลแอปพลิเคชันจะถูกจัดเก็บแยกต่างหากจากเวอร์ชันหลังจากติดตั้งแอปพลิเคชัน Android ที่จำเป็น 3 ตัว, รูทโทรศัพท์, ให้สิทธิ์ Termux ในการเข้าถึง Superuser และอนุญาต SSH แล้ว Ansible จะจัดการส่วนที่เหลือทั้งหมด จากนั้นคุณสามารถสั่งให้ Ansible นำโครงสร้างพื้นฐานไปสู่สถานะที่ต้องการได้จากคอมพิวเตอร์ของคุณการจัดการการเข้าถึงเครือข่าย (Ingress)ปัญหาต่อมาคือการทำให้เซิร์ฟเวอร์โทรศัพท์ที่อยู่หลังอินเทอร์เน็ตบ้านสามารถเข้าถึงได้จากภายนอก โดยไม่ต้องเปิดพอร์ตจำนวนมากบนเราเตอร์ และยังคงสามารถย้ายโทรศัพท์ไปยังเครือข่ายอื่นได้HTTP Applications: ใช้ Cloudflare Tunnel โดย cloudflared จะสร้างการเชื่อมต่อขาออกเพียงครั้งเดียวจากโทรศัพท์ จากนั้น Cloudflare จะส่งต่อคำขอไปยังโฮสต์เนมที่ถูกต้อง และ Caddy จะจัดการเส้นทางไปยังเซอร์วิสที่ต้องการ วิธีนี้ทำให้ไม่ต้องตั้งค่าการ Forward Port บนเราเตอร์ และหากย้ายโทรศัพท์ไปเครือข่ายอื่น Tunnel ก็จะเชื่อมต่อใหม่ได้โดยอัตโนมัติSurf Remote Browser Backend: เนื่องจาก Surf ต้องมีการเชื่อมต่อแบบ Direct ที่มีความไวต่อ Latency และมีการ Terminate TLS เอง จึงต้องใช้วิธีการที่แตกต่างออกไป โดยใช้ Cloudflare DDNS ชี้ไปยัง Public IP ปัจจุบันของบ้าน และเราเตอร์จะ Forward Port ไปยัง Surf โดยตรง เมื่ออยู่ใน LAN ก็สามารถเชื่อมต่อได้ทันที สำหรับการใช้งานนอกบ้าน จะทำการ ห่อหุ้ม TLS stream ของ Surf ทั้งหมดไว้ภายใน WebSocket ทำให้ Cloudflare มองเห็นและส่งต่อ WebSocket ในขณะที่การเชื่อมต่อ Surf ยังคงเข้ารหัสแบบ End-to-End อยู่สิ่งที่กำลังทำงานอยู่บนเซิร์ฟเวอร์โทรศัพท์โครงสร้างพื้นฐานบนโทรศัพท์ประกอบด้วย 2 ชั้นหลัก:Android และ Termux: จัดการเรื่องฮาร์ดแวร์, เครือข่าย, การเข้าถึงจากภายนอก (Ingress), และการจัดการเซอร์วิสLinux Residents: รับระบบไฟล์ที่คาดหวัง และทำงานโดยไม่รบกวนระบบหลักแอปพลิเคชันหลักที่ทำงานอยู่คือ:Surf: เว็บเบราว์เซอร์สำหรับ iPhone และ iPad โดยใช้ Chrome เวอร์ชัน ARM64 บนโทรศัพท์ และส่งวิดีโอ H.264 พร้อมรับคำสั่งจาก iPad miniPersonal Finance Tracker: โปรแกรมติดตามการเงินส่วนบุคคลการเปลี่ยนสมาร์ทโฟนให้เป็นเซิร์ฟเวอร์ส่วนตัวนี้ ไม่เพียงแต่ช่วยประหยัดค่าใช้จ่าย แต่ยังเป็นการปลดล็อกศักยภาพของอุปกรณ์ที่เรามีอยู่ให้เกิดประโยชน์สูงสุดอีกด้วย#สมาร์ทโฟน #เซิร์ฟเวอร์ #Termux #Ansible #Cloudflarehttps://seg6.space/posts/phone-server/
Shared content
SEG6.SPACE
my server is a phone now
rooting a CMF Phone 1 to run my personal infrastructure at home.
4 Comentários 0 Compartilhamentos 227 Visualizações 0 Anterior