หลายคนจ่ายค่า VPN เดือนละหลายร้อยบาทเพื่อปกป้องความเป็นส่วนตัว แต่รู้ไหมว่าเราสามารถ สร้าง VPN Server เป็นของตัวเองได้ โดยใช้ Raspberry Pi 5 ตัวเล็ก ๆ ที่วางไว้ที่บ้าน แล้วเชื่อมต่อเข้ามาจากที่ไหนก็ได้ในโลก วิธีนี้ไม่ต้องเสียค่าบริการรายเดือน แถมยังได้เรียนรู้เรื่องเครือข่ายไปในตัว บทความนี้จะพาทำทีละขั้นตอนแบบเข้าใจง่าย แม้ไม่เคยแตะเรื่อง Server มาก่อนก็ตามได้
Raspberry Pi 5 ขนาดเล็กแต่ทำ VPN Server ได้จริง (ภาพจาก PCMag)
PiVPN คืออะไร?
PiVPN เป็นสคริปต์ติดตั้งอัตโนมัติ ที่ช่วยให้เราตั้ง VPN Server บน Raspberry Pi ได้ง่ายมาก เปรียบเทียบง่าย ๆ คือ แทนที่เราจะต้องพิมพ์คำสั่งยาว ๆ มากมายเพื่อเซ็ตเซิร์ฟเวอร์เอง PiVPN จะจัดการทุกอย่างให้เกือบหมด เราแค่ตอบคำถามไม่กี่ข้อบนหน้าจอก็เสร็จ
PiVPN รองรับโปรโตคอล VPN ให้เลือก 2 ตัว คือ
OpenVPN เป็นโปรโตคอลเก่าแก่ที่เสถียร รองรับอุปกรณ์หลากหลาย เหมาะกับคนที่ต้องการความเข้ากันได้สูง
WireGuard เป็นโปรโตคอลรุ่นใหม่ เบา เร็ว ตั้งค่าง่ายกว่า เหมาะกับคนที่เพิ่งเริ่มต้น (บทความนี้แนะนำตัวนี้)
พูดง่าย ๆ คือ PiVPN เปลี่ยน Raspberry Pi ให้กลายเป็น VPN Server ส่วนตัว ที่เราเป็นเจ้าของข้อมูลทุกอย่างเอง ไม่มีบริษัทไหนมานั่งดูว่าเราทำอะไรอยู่
สิ่งที่ต้องเตรียมก่อนเริ่ม
ก่อนลงมือ เรามาเช็คของที่ต้องมีกัน ส่วนใหญ่ไม่ได้แพงอะไร แล้วถ้ามี Raspberry Pi อยู่แล้วก็เริ่มได้เลย
-
Raspberry Pi 5 (หรือ Pi 4 ก็ได้ แต่ Pi 5 แรงกว่า)
-
MicroSD Card ขนาด 16 GB ขึ้นไป (แนะนำ 32 GB)
-
สาย Ethernet ต่อ Pi เข้ากับเราเตอร์โดยตรง (แนะนำมากกว่า Wi-Fi เพราะเสถียรกว่า)
-
อะแดปเตอร์จ่ายไฟ สำหรับ Raspberry Pi (USB-C สำหรับ Pi 5)
-
คอมพิวเตอร์ สำหรับเขียน OS ลง SD Card และใช้ SSH เข้า Pi
-
เราเตอร์ที่บ้าน ที่เปิด Port Forwarding ได้
อุปกรณ์ที่ใช้ในโปรเจกต์นี้ (ภาพจาก PCMag)
Tip: ถ้ายังไม่มี Raspberry Pi 5 สามารถเลือกซื้อได้ที่ Globalbyteshop พร้อมอุปกรณ์เสริมครบชุด
ติดตั้งระบบปฏิบัติการบน Raspberry Pi
ขั้นตอนแรกคือต้องลง OS (ระบบปฏิบัติการ) ให้ Pi ก่อน เหมือนกับการลง Windows ให้คอม แต่ของ Pi จะใช้ระบบที่ชื่อว่า Raspberry Pi OS ซึ่งเป็น Linux ตัวเบา ๆ
ขั้นตอนที่ 1: ดาวน์โหลดโปรแกรม Raspberry Pi Imager จากเว็บ raspberrypi.com ลงบนคอมพิวเตอร์
ขั้นตอนที่ 2: เสียบ MicroSD Card เข้าคอม แล้วเปิด Imager เลือก OS เป็น Raspberry Pi OS Lite (64-bit) เวอร์ชันนี้ไม่มีหน้าจอ Desktop เพราะเราจะสั่งงาน Pi ผ่าน Terminal อย่างเดียว ซึ่งทำให้ Pi ทำงานเบาและเร็วกว่า
ขั้นตอนที่ 3: ก่อนกด Write ให้คลิกไอคอนฟันเฟือง (Settings) เพื่อตั้งค่า
- เปิด SSH (สำคัญมาก เพราะเราจะควบคุม Pi จากคอมอีกเครื่อง)
- ตั้ง Username และ Password สำหรับล็อกอิน
- ตั้ง Hostname เช่น pivpn
ขั้นตอนที่ 4: กด Write แล้วรอจนเสร็จ ถอด SD Card ไปเสียบที่ Pi แล้วเปิดเครื่อง
หน้าจอ Raspberry Pi Imager ตั้งค่าก่อนเขียนลง SD Card (ภาพจาก PCMag)
หลังจาก Pi บูทเสร็จ (รอสักครู่) ให้เปิด Terminal บนคอมแล้วพิมพ์คำสั่ง SSH เพื่อเข้าควบคุม Pi
ssh username@pivpn.local
เปลี่ยน username เป็นชื่อที่ตั้งไว้ตอนทำ Imager ถ้าเชื่อมต่อสำเร็จจะเห็นหน้าจอ Terminal ของ Pi พร้อมให้สั่งงาน
SSH คืออะไร? SSH เป็นวิธีควบคุมคอมพิวเตอร์อีกเครื่องผ่านเครือข่าย โดยพิมพ์คำสั่งจากคอมของเรา เหมือนรีโมทคอนโทรลแบบข้อความ ไม่ต้องต่อจอ ไม่ต้องต่อคีย์บอร์ดเข้า Pi เลย
ติดตั้ง OpenVPN หรือ WireGuard ผ่าน PiVPN
ตอนนี้ Pi พร้อมใช้งานแล้ว ขั้นต่อไปคือติดตั้ง VPN Server ลงไป ขั้นตอนนี้ง่ายมากเพราะ PiVPN ทำให้หมดแล้ว
ขั้นตอนที่ 1: อัพเดทระบบก่อน เพื่อให้ซอฟต์แวร์ทุกตัวเป็นเวอร์ชันล่าสุด
sudo apt update && sudo apt upgrade -y
ขั้นตอนที่ 2: รันคำสั่งติดตั้ง PiVPN
curl -L https://install.pivpn.io | bash
หลังจากรันคำสั่งนี้ จะมีหน้าจอตั้งค่าแบบมีตัวเลือกให้กดขึ้นมา ค่อย ๆ เลือกตามนี้
เลือก Network Interface: เลือก eth0 (สาย Ethernet) เพราะเสถียรกว่า Wi-Fi
ตั้ง Static IP: PiVPN จะถามว่าจะใช้ IP ปัจจุบันเป็น Static IP ไหม ตอบ Yes ได้เลย เพราะ Pi ต้องมี IP ที่ไม่เปลี่ยน เราเตอร์ถึงจะส่งข้อมูลมาหา Pi ได้ถูกเครื่อง
เลือกโปรโตคอล: แนะนำ WireGuard เพราะเร็วกว่า เบากว่า ตั้งค่าง่ายกว่า เหมาะกับมือใหม่
ตั้ง Port: ปกติจะใช้ port 51820 สำหรับ WireGuard (ใช้ค่าเริ่มต้นได้เลย)
DNS Server: เลือก DNS ที่ต้องการ เช่น Google, Cloudflare หรือ OpenDNS ก็ได้
Public IP vs DNS: ถ้า IP บ้านไม่เปลี่ยนบ่อย เลือก Public IP ได้ แต่ถ้า IP เปลี่ยนบ่อย (ซึ่งปกติจะเปลี่ยน) แนะนำใช้ Dynamic DNS เช่นจากเว็บ freedns.afraid.org
หน้าจอตั้งค่า PiVPN ระหว่างติดตั้ง (ภาพจาก PCMag)
Dynamic DNS คืออะไร? ปกติ IP บ้าน (Public IP) จะถูก ISP เปลี่ยนเป็นระยะ ๆ Dynamic DNS จะช่วยผูกชื่อโดเมนกับ IP ปัจจุบันของเรา เวลาเราอยู่ข้างนอกจะได้เชื่อมกลับมาหา Pi ที่บ้านได้ถูกต้องเสมอ แม้ IP จะเปลี่ยนไปแล้วก็ตาม
ตั้งค่า VPN Client (สร้างโปรไฟล์สำหรับเชื่อมต่อ)
หลังจากติดตั้ง PiVPN เสร็จ เราต้องสร้าง "โปรไฟล์" สำหรับอุปกรณ์แต่ละตัวที่จะเชื่อมต่อเข้ามา เช่น มือถือ โน้ตบุ๊ค เป็นต้น
สร้างโปรไฟล์: พิมพ์คำสั่งนี้ใน Terminal ของ Pi
pivpn add
ระบบจะถามชื่อโปรไฟล์ ตั้งชื่ออะไรก็ได้ที่จำง่าย เช่น myphone หรือ laptop แล้ว PiVPN จะสร้างไฟล์ .conf ให้อัตโนมัติ
ดูไฟล์โปรไฟล์: ไฟล์จะอยู่ในโฟลเดอร์
ls ~/configs/
เราต้องเอาไฟล์ .conf นี้ไปใส่ในอุปกรณ์ที่จะเชื่อมต่อ วิธีง่ายที่สุดคือใช้ QR Code
pivpn -qr myphone
คำสั่งนี้จะแสดง QR Code ขึ้นมาบนหน้าจอ Terminal ให้เอามือถือสแกนได้เลย (ผ่านแอป WireGuard)
QR Code สำหรับนำเข้าโปรไฟล์ WireGuard บนมือถือ (ภาพจาก PCMag)
ตั้งค่า Port Forwarding บนเราเตอร์
ขั้นตอนนี้สำคัญมากและเป็นส่วนที่หลายคนมักข้ามไป Port Forwarding คือการบอกเราเตอร์ว่า "ถ้ามีข้อมูลจากข้างนอกเข้ามาที่ Port นี้ ให้ส่งไปหา Raspberry Pi"
ถ้าไม่ตั้ง Port Forwarding เราจะเชื่อมต่อจากข้างนอกเข้ามาหา VPN Server ที่บ้านไม่ได้
ขั้นตอนที่ 1: เปิดหน้าเว็บตั้งค่าเราเตอร์ (ปกติจะเป็น 192.168.1.1 หรือ 192.168.0.1 พิมพ์ลงในเบราว์เซอร์)
ขั้นตอนที่ 2: หาหัวข้อ Port Forwarding หรือ Virtual Server (แต่ละเราเตอร์อาจเรียกชื่อต่างกัน)
ขั้นตอนที่ 3: เพิ่มกฎใหม่
- External Port: 51820 (หรือ port ที่ตั้งไว้ตอนติดตั้ง)
- Internal IP: IP ของ Raspberry Pi เช่น 192.168.1.100
- Internal Port: 51820
- Protocol: UDP
ขั้นตอนที่ 4: บันทึกการตั้งค่า
ตัวอย่างหน้าตั้งค่า Port Forwarding ในเราเตอร์ (ภาพจาก PCMag)
หา IP ของ Pi ได้อย่างไร? ใน Terminal ของ Pi พิมพ์ hostname -I แล้วจะได้ IP Address ออกมา เช่น 192.168.1.100
เชื่อมต่อ VPN ของคุณ
ทุกอย่างพร้อมแล้ว ถึงเวลาทดสอบ วิธีเชื่อมต่อจะต่างกันตามอุปกรณ์
บนมือถือ (iOS / Android):
1. ดาวน์โหลดแอป WireGuard จาก App Store หรือ Play Store
2. เปิดแอป กดเครื่องหมาย + แล้วเลือก Scan QR Code
3. สแกน QR Code ที่สร้างไว้ก่อนหน้า
4. กดเปิดสวิตช์เชื่อมต่อ เป็นอันเสร็จ
บนคอมพิวเตอร์ (Windows / Mac / Linux):
1. ดาวน์โหลดโปรแกรม WireGuard จาก wireguard.com
2. คัดลอกไฟล์ .conf จาก Pi มาใส่คอม (ใช้ SCP หรือ SFTP)
3. เปิดโปรแกรม WireGuard กด Import Tunnel แล้วเลือกไฟล์ .conf
4. กด Activate เป็นอันเสร็จ
แอป WireGuard เชื่อมต่อ VPN สำเร็จแล้ว (ภาพจาก PCMag)
ทดสอบ: เปิด VPN แล้วลองเข้าเว็บ whatismyip.com ถ้า IP ที่แสดงเป็น IP บ้านของคุณ แสดงว่า VPN ทำงานถูกต้องแล้ว
สรุป
การทำ VPN Server ด้วย Raspberry Pi 5 ไม่ได้ยากอย่างที่คิด สิ่งที่ได้คือ
- VPN ส่วนตัวที่ไม่ต้องจ่ายรายเดือน
- ความเป็นส่วนตัวที่เราควบคุมเองได้ทั้งหมด
- ความรู้เรื่อง Network, Server, และ Linux ที่ติดตัวไปใช้ได้อีกนาน
- เข้าถึงเครือข่ายบ้านจากทุกที่ในโลก (เช่น เข้า NAS, กล้องวงจรปิด, เครื่อง Pi ตัวอื่น ๆ)
ลองทำดู แล้วจะรู้ว่า Raspberry Pi ตัวเล็ก ๆ นี้ทำได้มากกว่าที่คิดเยอะมาก