เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ Wireguard บนเครื่อง Linux ของคุณ อินเทอร์เฟซเครือข่ายใหม่จะปรากฏขึ้น และทราฟฟิกทั้งหมดจะถูกส่งผ่าน
โดยปกติแล้ว ในการเชื่อมต่อสองอินเทอร์เฟซเข้าด้วยกัน คุณเพียงแค่ตั้งค่าบริดจ์และเชื่อมต่ออินเทอร์เฟซทั้งสองเข้าด้วยกันอย่างง่ายดาย
อย่างไรก็ตาม Bridges ทำงานบน OSI Layer-2 (เฟรมการส่งต่อซึ่งถูกส่งไปยังที่อยู่ MAC ปลายทาง) ในขณะที่ Wireguard เป็นโปรโตคอล Layer-3 (การส่งต่อแพ็กเก็ต IP ด้วยที่อยู่ IP ปลายทาง) (ข้อมูลเพิ่มเติม).
ดังนั้นคุณจึงไม่สามารถเชื่อมต่ออินเทอร์เฟซที่ทำงานบน L3 ด้วยบริดจ์ได้ คุณจึงมีหลายทางเลือก:
- ใช้อุโมงค์ VPN Layer-2 (เช่น L2TP+IPSec) พร้อมความยุ่งยากในการกำหนดค่าที่เกิดขึ้น
- ตั้งค่า Raspberry Pi เป็นพร็อกซีถุงเท้าที่ส่งสัญญาณการรับส่งข้อมูลไปยัง Wireguard และเชื่อมต่ออินเทอร์เน็ตเต็มรูปแบบกับอุปกรณ์ที่เชื่อมต่อ นี่หมายถึงการจราจร จะไม่ ผ่าน VPN เป็นค่าเริ่มต้น ซึ่งมักจะไม่ใช่สิ่งที่คุณต้องการ
- ตั้งค่า Raspberry Pi เป็นเราเตอร์เกตเวย์และส่งต่อแพ็กเก็ต IP ไปยัง VPN:
เพื่อให้บรรลุเป้าหมายนี้ คุณต้องมีสิ่งต่อไปนี้:
- เปิดใช้งานการส่งต่อแพ็กเก็ตบนไคลเอนต์ Pi (set
net.ipv4.ip_forward=1
ใน /etc/sysctl.conf
และปรับปรุงด้วย sysctl -p
- ตั้งค่า NAT บนไคลเอนต์ Pi ระหว่างอินเทอร์เฟซทั้งสอง สิ่งนี้จะส่งต่อแพ็กเก็ตจากซับเน็ต WG ของคุณ (เช่น
10.0.0.0/24
ไปยังเครือข่ายย่อยใหม่ Raspberry Pi ของคุณจะดูแลและคุณตั้งค่าในเซิร์ฟเวอร์ DHCP (เช่น 10.10.0.0/24
).
มีหลายวิธีในการกำหนดค่านี้ แต่ในปี 2022 คุณควรตั้งค่าโดยใช้ Ubuntu เน็ตแพลน ลอง ซึ่งช่วยให้คุณกำหนดค่าเครือข่ายทั้งหมดเหล่านี้ด้วยไฟล์ YAML ได้อย่างง่ายดาย มี ตัวอย่าง บนเว็บไซต์ของ Netplan บรรลุสิ่งนี้อย่างแน่นอน
- ตั้งค่า raspberry pi เป็นเซิร์ฟเวอร์ DHCP (เพื่อให้การกำหนดค่า IP เป็นไปโดยอัตโนมัติและอุปกรณ์ที่ไม่มีการกำหนดค่าด้วยตนเองจะมีการส่งต่อทราฟฟิกด้วย): ตั้งค่า
ตัวเลือกเราเตอร์ yourRaspberryPisWireguardIP;
ใน /etc/dhcp/dhcpd.conf
และเลือกเครือข่ายย่อยใหม่เพื่อกำหนดที่อยู่ IP ให้กับลูกค้า แนะนำ. คุณควรเตรียมตัวให้พร้อม isc-dhcp-เซิร์ฟเวอร์
เล่นดีกับ เน็ตแพลน
. นี้ คำตอบ askubuntu ทำอย่างนั้น
- โปรดจำไว้ว่าการใช้ Netplan อาจจะแทนที่การตั้งค่าเครือข่าย Wg-Quick ของคุณ แต่นั่นไม่ใช่ปัญหา แค่ เพิ่มการกำหนดค่าไคลเอนต์ WG ของคุณ ในไฟล์ Netplan เดียวกันนั้นในไฟล์
อุโมงค์:
ส่วน.
- คุณอาจต้องการตั้งค่าเซิร์ฟเวอร์ DNS บน Raspberry Pi ที่ชี้ไปที่ DNS เซิร์ฟเวอร์ WG ของคุณเพื่อหลีกเลี่ยงการรั่วไหล
อย่างที่คุณอาจเดาได้ ด้วยวิธีการสุดท้ายนี้ ไคลเอนต์ทั้งหมดที่เชื่อมต่อกับราสเบอร์รี่ของคุณดูเหมือนจะมาจาก IP ไคลเอ็นต์เดียวกัน (ของ Raspberry ของคุณ) เนื่องจาก NAT คุณอาจเปลี่ยนสิ่งนี้ได้ (การกำหนดค่าเซิร์ฟเวอร์ของ Wireguard IP ที่อนุญาต
สามารถตั้งค่าเป็นช่วงได้ แต่ฉันไม่แน่ใจว่าจะบรรลุได้อย่างไร
TLDR: กำหนดค่าอุโมงค์ไคลเอนต์ wg โดยใช้ Netplan. ติดตั้ง NAT โดยใช้ Netplan ระหว่างอินเทอร์เฟซไคลเอนต์ WG และอีเธอร์เน็ตรองที่คุณวางแผนจะเปิดไคลเอ็นต์ของคุณ ตั้งค่า ก เซิร์ฟเวอร์ DHCP บน pi ของคุณบนซับเน็ตแยกต่างหากสำหรับลูกค้าของคุณ โดยพื้นฐานแล้ว สร้างเราเตอร์ของคุณเอง.