คำตอบแบบสั้น
ฉันจะเชื่อมต่อเครือข่ายบ้านกับ VPS ด้วย WireGuard (หลัง CGNAT) อย่างไร?
การเชื่อมต่อเครือข่ายบ้านกับ VPS ด้วย WireGuard หลัง CGNAT ให้รัน WireGuard บน VPS เป็นฮับ และให้เครื่องที่บ้านโทรออกไปยังฮับด้วย PersistentKeepalive = 25 แพ็กเกจ Dusk ของ Gloamport ที่ 1 vCPU, 2 GB RAM, 40 GB NVMe, 2 TB traffic เป็นโฮสต์ของฮับในราคา $5.25 ต่อเดือนในระยะ 12 เดือน
แต่ละฝั่งใช้ที่อยู่ใดในการตั้งค่านี้?
| เครื่อง | บทบาท | ที่อยู่อุโมงค์ | โทรออกไปที่ |
|---|---|---|---|
| VPS (Dusk) | ฮับที่มีที่อยู่ IPv4 สาธารณะ | 10.8.0.1/24 | ไม่มี; ฟังอยู่ที่ UDP 51820 |
| เครื่องที่บ้าน | peer หลัง CGNAT ที่มี LAN 192.168.1.0/24 | 10.8.0.3/24 | VPS ทุก 25 วินาที |
| แล็ปท็อป | peer ที่เคลื่อนที่ได้ | 10.8.0.2/24 | VPS |
ที่อยู่เป็นตัวอย่างจากช่วงที่เป็นส่วนตัว ราคา: Dusk คือ $5.25 ต่อเดือนในระยะ 12 เดือน และ $10.50 ในระยะ 1 เดือน
ทำไม CGNAT จึงบล็อกการตั้งค่า WireGuard ปกติ?
หลัง CGNAT เราเตอร์ของคุณแชร์ที่อยู่ IPv4 สาธารณะหนึ่งที่อยู่กับลูกค้ารายอื่น ดังนั้นไม่มีอะไรภายนอกเปิดการเชื่อมต่อเข้าบ้านคุณได้ WireGuard ต้องให้ฝั่งหนึ่งเข้าถึงได้ด้วยที่อยู่ และ VPS คือฝั่งนั้น มันมี IPv4 หนึ่งที่อยู่และ IPv6 /64 ต่อ VPS บนพอร์ต 1 Gbit/s ทราฟฟิกของแพ็กเกจนับเฉพาะข้อมูลขาออก และการใช้ทราฟฟิกไม่ก่อให้เกิดบิลเพิ่มด้วยตัวมันเอง
เครื่องที่บ้านเปิดอุโมงค์ออกไปภายนอก WireGuard quickstart อธิบาย PersistentKeepalive สำหรับกรณีนี้โดยเฉพาะ: ตั้งค่าไว้กับ peer ที่อยู่หลังไฟร์วอลล์หรือ NAT และ 25 วินาทีคือ "ช่วงเวลาที่เหมาะสมที่ทำงานกับไฟร์วอลล์หลากหลายแบบ" การแมป NAT จึงเปิดอยู่ และ VPS ส่งแพ็กเก็ตกลับผ่านมันได้
แพ็กเกจของ Gloamport ไหนเหมาะกับฮับ?
Dusk เหมาะกับฮับที่ส่งทราฟฟิกระหว่างเครื่องไม่กี่เครื่อง Gloamport ระบุไว้ว่าเหมาะกับ "VPN พร้อมรีเลย์ Tor หรือเว็บ onion" มี vCPU 1 RAM 2 GB และทราฟฟิกรายเดือน 2 TB
ตามการสำรวจของ Gloamport ที่อ้างถึง 10 พฤศจิกายน 2569 ราคาค่ากลางของ VPS 1 vCPU, 2 GB ในกลุ่ม 32 โฮสต์ แห่งอยู่ที่ $18.91 ต่อเดือน หากคุณต้องการอุโมงค์สำหรับบริการเล็กเพียงหนึ่งอย่าง Ember ก็เพียงพอ พื้นฐานการตั้งค่าอยู่ใน ฉันตั้งค่า WireGuard บน VPS อย่างไร?
ฉันเชื่อมต่อเครือข่ายบ้านกับ VPS ด้วย WireGuard ทีละขั้นตอนได้อย่างไร?
หกขั้นตอน ทำ VPS ก่อน แล้วจึงทำเครื่องที่บ้าน
ตั้งค่าฮับ
ติดตั้ง WireGuard บน VPS และสร้างคู่คีย์ของมัน ตามคู่มือพื้นฐาน เปิด UDP 51820 ในไฟร์วอลล์ที่คุณรันอยู่บนนั้น
เปิดการส่งต่อบน VPS
แพ็กเก็ตจากแล็ปท็อปไปยังเครื่องที่บ้านต้องผ่าน VPS ดังนั้นต้องเปิด IPv4 forwarding
net.ipv4.ip_forwardมีค่าเริ่มต้นเป็น 0ประกาศทั้งสอง peer บน VPS
เพิ่ม
[Peer]หนึ่งรายการสำหรับเครื่องที่บ้าน และอีกหนึ่งรายการสำหรับแล็ปท็อป peer ที่บ้านยังสามารถรับ LAN ของบ้านในAllowedIPsได้ด้วยตั้งค่าเครื่องที่บ้าน
ติดตั้ง WireGuard ที่บ้าน ตั้ง
Endpointเป็นที่อยู่ของ VPS และเพิ่มPersistentKeepalive = 25ไม่จำเป็นต้องทำ port forwarding บนเราเตอร์ที่บ้านตั้งค่าแล็ปท็อป
ให้มัน
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24เพื่อให้ทราฟฟิกของอุโมงค์และทราฟฟิกของบ้านผ่าน VPS ทั้งคู่ทดสอบจากแล็ปท็อป
รัน
wg showบน VPS จากนั้น ping 10.8.0.3 จากแล็ปท็อป handshake ล่าสุดของแต่ละ peer หมายความว่าทั้งคู่โทรเข้ามาแล้ว
ฉันเขียนการตั้งค่าฮับอย่างไร?
ไฟล์ฮับระบุแต่ละ peer พร้อมคีย์สาธารณะและที่อยู่ที่ VPS อาจส่งไปยัง peer นั้นได้ การประกาศ LAN ของบ้านบน peer ที่บ้านทำให้ VPS ส่ง 192.168.1.0/24 เข้าอุโมงค์ได้
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <VPS private key>
PostUp = sysctl -w net.ipv4.ip_forward=1
[Peer]
# home machine
PublicKey = <home public key>
AllowedIPs = 10.8.0.3/32, 192.168.1.0/24
[Peer]
# laptop
PublicKey = <laptop public key>
AllowedIPs = 10.8.0.2/32ฉันตั้งค่าเครื่องที่บ้านและแล็ปท็อปอย่างไร?
เครื่องที่บ้านต้องการ PersistentKeepalive และเส้นทางไปยัง subnet ของอุโมงค์ ส่วนแล็ปท็อปต้องการเส้นทางไปยังทั้งสอง subnet เปิดแต่ละเครื่องด้วย wg-quick up wg0
หากคุณต้องการให้แล็ปท็อปเข้าถึงอุปกรณ์อื่นบน LAN ของบ้าน ไม่ใช่แค่เครื่องที่บ้าน เครื่องที่บ้านต้องส่งต่อแพ็กเก็ตเองด้วย: ตั้ง net.ipv4.ip_forward เป็น 1 ที่นั่นด้วย เช่น ด้วยบรรทัด PostUp = sysctl -w net.ipv4.ip_forward=1
[Interface]
Address = 10.8.0.3/24
PrivateKey = <home private key>
PostUp = sysctl -w net.ipv4.ip_forward=1
[Peer]
PublicKey = <VPS public key>
Endpoint = <VPS IPv4 address>:51820
AllowedIPs = 10.8.0.0/24
PersistentKeepalive = 25[Interface]
Address = 10.8.0.2/24
PrivateKey = <laptop private key>
[Peer]
PublicKey = <VPS public key>
Endpoint = <VPS IPv4 address>:51820
AllowedIPs = 10.8.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25wg-quick up wg0
systemctl enable --now wg-quick@wg0
wg show
ping -c 3 10.8.0.3ฉันทำอะไรกับอุโมงค์ได้บ้างเมื่อมันทำงานแล้ว?
คุณเข้าถึง NAS, กล้อง หรือบริการที่โฮสต์เองที่บ้านจากที่ไหนก็ได้ โดยไม่ต้องเปิดพอร์ตที่บ้าน แล็ปท็อปคุยกับ 10.8.0.3 เหมือนอยู่ข้างกัน และไม่มีอะไรเปิดเผยบนเราเตอร์ที่บ้านของคุณ
รักษาให้ VPS เข้าถึงได้และเป็นระเบียบ: ฉันจะเสริมความปลอดภัย SSH บน VPS ใหม่อย่างไร? ครอบคลุมด้านการเข้าสู่ระบบ และ VPN ที่โฮสต์เองบน VPS ดีกว่าบริการ VPN หรือไม่? ชั่งน้ำหนักแนวทางทั้งหมด สำหรับฮับ Dusk ในระยะ 12 เดือนคือ $5.25 ต่อเดือน และแพ็กเกจแสดงอยู่ใน หน้าราคา
สรุป
- CGNAT บล็อกการเชื่อมต่อขาเข้า ดังนั้นเครื่องที่บ้านจึงโทรออกไปยัง VPS
- VPS รันฮับด้วยที่อยู่ IPv4 สาธารณะและเปิด UDP 51820 ไว้
PersistentKeepalive = 25ทำให้การแมป NAT เปิดอยู่ที่บ้าน- IPv4 forwarding (
net.ipv4.ip_forward=1) จำเป็นบน VPS และที่บ้านเพื่อเข้าถึง LAN AllowedIPsของแต่ละ peer เป็นตัวกำหนดว่า subnet ใดที่มันเข้าถึงได้- Dusk (1 vCPU, 2 GB RAM, 40 GB NVMe, 2 TB traffic) ราคา $5.25 ต่อเดือนในระยะ 12 เดือน
เครือข่ายบ้านถึง VPS ด้วย WireGuard: คำถามที่พบบ่อย
ฉันต้องตั้งค่า port forwarding บนเราเตอร์บ้านหรือไม่?
ไม่ต้อง เครื่องที่บ้านเปิดการเชื่อมต่อออกไปยัง VPS เราเตอร์จึงต้องอนุญาตเพียง UDP ขาออก keepalive จะทำให้เส้นทางกลับเปิดอยู่
CGNAT คืออะไร?
Carrier-grade NAT คือการตั้งค่าที่ผู้ให้บริการอินเทอร์เน็ตแชร์ที่อยู่ IPv4 สาธารณะหนึ่งที่อยู่ระหว่างลูกค้าจำนวนมาก คุณไม่สามารถรับการเชื่อมต่อขาเข้าที่ไม่ได้ร้องขอได้ ซึ่งเป็นเหตุผลที่ VPS ทำหน้าที่เป็นจุดนัดพบ
VPS เข้าถึง LAN ทั้งหมดของบ้านฉันได้ไหม?
ได้ หากเครื่องที่บ้านระบุ LAN เช่น 192.168.1.0/24 ใน AllowedIPs บน VPS และเครื่องที่บ้านส่งต่อแพ็กเก็ตด้วย net.ipv4.ip_forward ที่ตั้งเป็น 1
ฉันควรเลือกแพ็กเกจ Gloamport ไหนสำหรับฮับ?
Dusk ที่ $5.25 ต่อเดือนในระยะ 12 เดือนเหมาะกับฮับสำหรับไม่กี่เครื่อง Ember ก็เพียงพอหากมีอุปกรณ์เชื่อมต่อเพียงเครื่องเดียว
อุโมงค์รองรับ IPv6 หรือไม่?
รองรับได้ เพิ่มที่อยู่ IPv6 ใน Address และ prefix IPv6 ใน AllowedIPs; wg-quick รับได้ทั้งสองตระกูล และเคอร์เนลมีการตั้งค่าการส่งต่อ IPv6 แยกต่างหาก
แหล่งข้อมูล (3)
- คู่มือเริ่มต้นใช้งาน WireGuard ฉบับย่อ (persistent keepalive) — WireGuard (checked 2026-11-10)
- หน้าคู่มือ wg-quick(8) — Debian (checked 2026-11-10)
- IP sysctl: ip_forward และการส่งต่อ IPv6 — The Linux Kernel documentation (checked 2026-11-10)