27 คะแนน โดย davespark 2025-11-27 | 4 ความคิดเห็น | แชร์ทาง WhatsApp

คู่มือนี้อธิบายขั้นตอนการแปลงโทรศัพท์ Android ที่ไม่ได้ใช้งานให้เป็นโฮมเซิร์ฟเวอร์ขนาดเล็กด้วย postmarketOS โดยอ้างอิงจากกรณีศึกษาที่ใช้ Fairphone 2 ปี 2015 ในการโฮสต์เว็บเพจ เป้าหมายคือการลดขยะอิเล็กทรอนิกส์และส่งเสริมการนำกลับมาใช้ใหม่ ผลลัพธ์คือคุณจะได้โฮมเซิร์ฟเวอร์ขนาดเล็กที่สามารถรันบริการพื้นฐานได้

สิ่งที่ต้องเตรียม
  • โทรศัพท์ Android ที่ไม่ได้ใช้งาน
  • ที่ชาร์จและแหล่งจ่ายไฟ
  • การเชื่อมต่อ WiFi
  • คอมพิวเตอร์ที่รัน Linux (แบบเนทีฟหรือใน virtual machine)
ขั้นตอนที่ 1: ติดตั้ง postmarketOS

เริ่มจากติดตั้ง postmarketOS ลงบนโทรศัพท์ ตรวจสอบก่อนว่าอุปกรณ์ของคุณรองรับได้ดีจาก หน้ารายการอุปกรณ์ และเปิดหน้านั้นทิ้งไว้ตลอดการติดตั้ง

หลังจากติดตั้ง pmbootstrap แล้ว ให้สร้างอิมเมจและแฟลชลงอุปกรณ์

การสร้างอิมเมจ:

  • อัปเดตพอร์ตและเริ่มต้นข้อมูลอุปกรณ์:
    $ pmbootstrap pull
    $ pmbootstrap init
    
    • ให้กรอก device codename ตามที่ระบุไว้ในหน้าอุปกรณ์
    • สำหรับ user interface ให้เลือก console (ตัวเลือกขั้นต่ำ) หรือ fbkeyboard (มีคีย์บอร์ดบนหน้าจอ)
    โฆษณา
  • สร้างอิมเมจ:
    $ pmbootstrap install
    

การแฟลชอิมเมจ:

  • ตรวจสอบจากหน้าอุปกรณ์ว่าต้องบูตเข้าโหมดแฟลชอย่างไร (โดยทั่วไปคือเปิดเครื่องพร้อมกดปุ่ม "volume down" ค้างไว้)
  • เชื่อมต่อโทรศัพท์กับคอมพิวเตอร์แล้วบูตเข้าโหมดแฟลช
  • ทำตามคำแนะนำในส่วน 'Installation' ของหน้าอุปกรณ์
  • แฟลช root file system:
    $ pmbootstrap flasher flash_rootfs
    
  • รีบูตอุปกรณ์และตรวจสอบว่า postmarketOS เริ่มทำงานได้ถูกต้อง
ขั้นตอนที่ 2: ตั้งค่าเซิร์ฟเวอร์

ล็อกอินเข้าโทรศัพท์ที่ติดตั้ง postmarketOS แล้ว ชื่อผู้ใช้/รหัสผ่านเริ่มต้นคือ user / 147147

  • ล็อกอินผ่าน SSH ขณะเชื่อมต่อโทรศัพท์กับคอมพิวเตอร์อยู่:
    $ ssh user@172.16.42.1
    
    โฆษณา
  • เชื่อมต่อกับเครือข่าย WiFi:
    $ nmcli device wifi connect your_wifi_network --ask
    

ตอนนี้เซิร์ฟเวอร์บนโทรศัพท์ในเครือข่ายภายในก็พร้อมแล้ว คำสั่งสำหรับตรวจสอบ IP ภายในของโทรศัพท์คือ:

$ ip -4 addr show wlan0 | grep inet | awk '{print $2}' | cut -d'/' -f1

(โดยทั่วไปจะอยู่ในรูปแบบ 192.168.1.x) เชื่อมต่อโทรศัพท์ไว้ในที่ปลอดภัยและเข้าถึงผ่าน WiFi:

ssh user@192.168.1.x
ขั้นตอนที่ 3: ให้บริการเว็บเพจ

ตั้งค่าเว็บเซิร์ฟเวอร์เพื่อโฮสต์เว็บเพจอย่างง่าย

  • สร้างไดเรกทอรี /var/www/html/:
    sudo mkdir -p /var/www/html/
    
    โฆษณา
  • เขียนไฟล์ HTML แบบ Hello World อย่างง่าย:
    $ sudo sh -c 'echo "hello world
    
    

" > /var/www/html/index.html'

- เพิ่มกฎ nftables เพื่ออนุญาตแพ็กเก็ตขาเข้าที่พอร์ต 80 (ในไฟล์ `/etc/nftables.d/99_http.nft`):

inet filter input tcp dport 80 ct state new accept

- รีสตาร์ต nftables:

$ sudo systemctl restart nftables

โฆษณา
- รันเว็บเซิร์ฟเวอร์:

$ httpd -h /var/www/html/

- ทดสอบ: ตรวจสอบจากคอมพิวเตอร์ด้วย curl:

$ curl 192.168.1.x

(จะได้ข้อความ `hello world

` แสดงออกมา) จากนั้นลองพิมพ์ IP ดังกล่าวในเว็บเบราว์เซอร์ของอุปกรณ์ที่เชื่อมต่อกับเครือข่าย WiFi เดียวกันเพื่อตรวจสอบ (เมื่อรีบูตแล้ว HTTP server จะไม่เริ่มทำงานอัตโนมัติ)

#### เพิ่มเติม: การเข้าถึงจากระยะไกล
เพื่อความปลอดภัย อย่าเปิดพอร์ต SSH 22 ออกสู่อินเทอร์เน็ต แต่ให้ตั้งค่า VPN access บนเราเตอร์แทน (ส่วนใหญ่รองรับผ่านเว็บอินเทอร์เฟซ) หลังเชื่อมต่อ VPN แล้วจึงเข้าถึงด้วย SSH ผ่านเครือข่ายภายใน หากจำเป็นต้องเปิดพอร์ต 22 สู่อินเทอร์เน็ต ให้ปิดการล็อกอินด้วยรหัสผ่านและตั้งค่า [SSH keys](https://wiki.archlinux.org/title/SSH_keys)

#### เพิ่มเติม: การบำรุงรักษา
อัปเดตแพ็กเกจ:

$ sudo apk update $ sudo apk upgrade


#### ขั้นตอนถัดไป
เรียนรู้การตั้งค่าโดเมนและ HTTPS รวมถึงวิธีทำให้ HTTP server รันต่อเนื่องหลังรีบูตได้จาก[ส่วนขั้นสูง](./advanced.html) (ยังอยู่ระหว่างจัดทำ)

คู่มือนี้จัดทำโดย [Louis Merlin](https://louismerl.in) ภายใต้สัญญาอนุญาต [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)

4 ความคิดเห็น

 
lemonapple 2025-11-29

ผมชอบอะไรแบบนี้นะ
ถ้าจะเริ่มแบบเบา ๆ แค่ termux ก็พอใช้ได้เหมือนกัน เอาไปเปิด Grafana บนแท็บเล็ตที่ไม่ได้ใช้แล้วในระดับนั้นยังใช้งานได้อยู่

แต่ Android OS ค่อนข้างเป็นปฏิปักษ์กับการทำงานเป็นเซิร์ฟเวอร์
อิงจาก Note10 ที่รีเซ็ตเป็นค่าโรงงานในปี 24
ถ้ามี child process เกิน 6 ตัวจะโดน kill
ถึงจะอยู่ในสถานะ idle นาน ๆ ก็ยังโดน kill
ปิดการเพิ่มประสิทธิภาพที่เกี่ยวกับแบตเตอรี่ทั้งหมดแล้วก็ยังเป็นเหมือนเดิม

ผมลองปล่อยไว้โดยไม่แตะหน้าจอได้นานสุดแค่ 72 ชั่วโมง หลังจากนั้นก็ยอมแพ้ครับ

 
geeep 2025-12-01

เคยลองปิด phantom process killer ไหม?

 
qpolsa95 2025-11-28

แบตเตอรี่น่าจะยังไหวอยู่ไหม

 
cdwdong2 2025-11-28

คงมีอาการแบตบวมใช่ไหม