Mesh VPN เป็นเครื่องมือที่ทำให้ทุกอย่างง่ายขึ้นอย่างเงียบ ๆ: แล็ปท็อป เซิร์ฟเวอร์ที่บ้าน โทรศัพท์ และ VPS ของคุณมองเห็นกันผ่านที่อยู่ส่วนตัวไม่ว่าจะอยู่ที่ไหน ปัญหาของ mesh VPN แบบโฮสต์ให้คือเซิร์ฟเวอร์ประสานงาน: บริษัทหนึ่งถือแผนที่ของอุปกรณ์ทุกเครื่องที่คุณมี Headscale คือซอฟต์แวร์โอเพนซอร์สที่ใช้แทนเซิร์ฟเวอร์ควบคุมนั้น รันมันบน VPS ขนาดเล็ก ใช้แอปไคลเอนต์ตามปกติต่อไป แล้วแผนที่ก็จะเป็นของคุณ
ส่วนประกอบทำงานร่วมกันอย่างไร
- Headscale (บน VPS ของคุณ) แจกที่อยู่ กระจายคีย์สาธารณะ และบังคับใช้ ACL ของคุณ
- ไคลเอนต์ คือแอป Tailscale มาตรฐานที่ชี้มายังเซิร์ฟเวอร์ของคุณ
- ทราฟฟิก วิ่งจากอุปกรณ์ถึงอุปกรณ์ผ่าน WireGuard เซิร์ฟเวอร์ควบคุมไม่เคยเป็นทางผ่านของมัน
ข้อสุดท้ายนี้คือเหตุผลที่แพ็กเกจเล็กมากก็เพียงพอ: VPS แค่ตอบคำขอประสานงานเล็ก ๆ
สิ่งที่คุณต้องมี
- Nano-IP ($8/เดือน): 2 vCPU และ RAM 1 GB มากกว่าที่ Headscale ใช้หลายเท่า
- IPv4 เฉพาะและโดเมน เช่น
hs.example.comอุปกรณ์สื่อสารกับเซิร์ฟเวอร์ควบคุมผ่าน HTTPS ดังนั้น VPS ต้องรับพอร์ต 443 ขาเข้า ซึ่งแพ็กเกจ NAT ทำไม่ได้ (รายละเอียด)
การติดตั้ง (Debian 12 / Ubuntu 24.04)
ดาวน์โหลดไฟล์ .deb ล่าสุดจากหน้ารีลีสของ Headscale บน GitHub โดยเปลี่ยนเวอร์ชันเป็นรุ่นใหม่สุด:
HS_VER=0.26.1
wget -O headscale.deb \
"https://github.com/juanfont/headscale/releases/download/v${HS_VER}/headscale_${HS_VER}_linux_amd64.deb"
apt install -y ./headscale.deb caddy
แก้ไข /etc/headscale/config.yaml โดยสองบรรทัดที่สำคัญคือ:
server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080
วาง Caddy ไว้ด้านหน้าเพื่อให้มี HTTPS:
cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy
เพิ่มผู้ใช้และอุปกรณ์
headscale users create alice
headscale users list # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h
รีลีสเก่าต้องใส่ชื่อผู้ใช้แทน ID ใน --user คำสั่ง headscale preauthkeys create --help จะบอกว่าเวอร์ชันของคุณต้องการแบบไหน
บนอุปกรณ์ Linux:
tailscale up --login-server https://hs.example.com --authkey YOUR_KEY
บนโทรศัพท์และคอมพิวเตอร์ แอป Tailscale ให้คุณตั้งเซิร์ฟเวอร์ควบคุมแบบกำหนดเองได้ในหน้าการตั้งค่า รัน headscale nodes list บน VPS แล้วอุปกรณ์ของคุณควรปรากฏในรายการ
รีเลย์และการทะลุ NAT
อุปกรณ์ส่วนใหญ่เชื่อมต่อกันโดยตรง เมื่ออุปกรณ์สองเครื่องทำไม่ได้ (เครือข่ายมือถือที่เข้มงวด หรือ NAT ซ้อนสองชั้น) ทราฟฟิกจะวิ่งผ่านรีเลย์ DERP โดยค่าเริ่มต้น Headscale ใช้รีเลย์สาธารณะของ Tailscale ซึ่งเห็นเพียงแพ็กเก็ตที่เข้ารหัส หากไม่ต้องการให้มีสิ่งภายนอกอยู่ในเส้นทาง ให้เปิดรีเลย์ในตัวใน config.yaml (derp.server.enabled: true) และเปิด UDP 3478 ทราฟฟิกที่ถูกส่งต่อจะนับรวมในแบนด์วิดท์ของ VPS
ข้อจำกัดตามจริง
ไม่มีแดชบอร์ดเว็บอย่างเป็นทางการ: ผู้ใช้ คีย์ และเส้นทางล้วนเป็นคำสั่ง CLI (ทำสองครั้งก็คล่อง) ฟีเจอร์ใหม่ของบริการแบบโฮสต์ให้จะมาถึง Headscale ช้ากว่า ถ้ามาเลย และตอนนี้เซิร์ฟเวอร์ควบคุมเป็นความรับผิดชอบของคุณ: ถ้ามันล่ม การเชื่อมต่อที่มีอยู่ยังทำงาน แต่อุปกรณ์ใหม่เข้าร่วมไม่ได้และคีย์ต่ออายุไม่ได้ จึงควรสำรองข้อมูล: สถานะทั้งหมดอยู่ใน /var/lib/headscale
สำหรับโฮมแล็บ ครอบครัว หรือทีมเล็กที่อยากย้ายแผนที่อุปกรณ์ออกจากเซิร์ฟเวอร์ของบุคคลที่สาม นี่คือหนึ่งในการใช้งาน VPS ราคา $8 ที่คุ้มที่สุด
ที่เกี่ยวข้อง
- โฮสต์ WireGuard VPN เอง: WireGuard ล้วน หากคุณต้องการอุโมงค์เดียว
- VPS สำหรับ VPN
- VPS สำหรับเข้าถึง Home Assistant จากระยะไกล
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ