สมมติว่าฉันมีเซิร์ฟเวอร์สองเครื่อง: A และ B ฉันได้ติดตั้ง WireGuard ไว้ที่ทั้งสองเซิร์ฟเวอร์
บนเซิร์ฟเวอร์ A wg0
ถูกกำหนดเส้นทางด้วย IP 10.8.0.0/24
และบนเซิร์ฟเวอร์ B wg0
ถูกกำหนดเส้นทางด้วย IP 10.7.0.0/24
.
สมมติว่า WireGuard ของเซิร์ฟเวอร์ A กำลังฟังที่พอร์ต 4000 และ WireGuard ของเซิร์ฟเวอร์ B กำลังฟังที่พอร์ต 5000
ฉันต้องการส่งต่อทราฟฟิกขาเข้าทั้งหมดไปยังเซิร์ฟเวอร์ A ที่พอร์ต 5000 เท่านั้น มีแอปพลิเคชันอื่นๆ ที่รับฟังในพอร์ตอื่น และฉันไม่ส่งต่อ
สิ่งที่ฉันต้องการคือ:
- ไคลเอนต์เชื่อมต่อกับ --> เซิร์ฟเวอร์ A
- สมมติว่าลูกค้าบอกให้เซิร์ฟเวอร์เปิด google.com ให้ฉัน
- เซิร์ฟเวอร์ A เชื่อมต่อกับ --> เซิร์ฟเวอร์ B
- สมมติว่าเซิร์ฟเวอร์ A บอกให้เซิร์ฟเวอร์ B เปิด google.com ให้ฉัน
- เซิร์ฟเวอร์ B เข้าถึง google.com
- ส่งข้อมูลที่ได้รับจาก google.com ไปยัง --> เซิร์ฟเวอร์ A
- เซิร์ฟเวอร์ A ส่งข้อมูลที่ได้รับไปยัง --> ลูกค้า
จะทำอย่างไร? ระบบปฏิบัติการคือ Ubuntu บนเซิร์ฟเวอร์ทั้งสอง
อัพเดท 1
เอส-บี /etc/wireguard/wg0.conf
ไฟล์:
[อินเตอร์เฟซ]
ที่อยู่ = 10.7.0.1/24
คีย์ส่วนตัว = SOME_KEY
ListenPort = PORT_NUMBER
ส-อา /etc/wireguard/wg0.conf
ไฟล์:
[อินเตอร์เฟซ]
ที่อยู่ = 10.8.0.1/24
คีย์ส่วนตัว = SOME_KEY
ListenPort = PORT_NUMBER
ฉันเชื่อมต่อกับ VPN ของ S-A โดย ping บน cmd 8.8.8.8 ของฉัน มันใช้งานได้ SSHed เป็น S-A ขณะเชื่อมต่อกับ VPN, ping 8.8.8.8 ใช้งานได้
ฉันทำเช่นเดียวกันกับ S-B และใช้งานได้
ฉันสามารถ SSH จาก S-A ถึง S-B และในทางกลับกัน
ไฟล์ conf ไคลเอ็นต์หนึ่งไฟล์ใน S-A:
[อินเตอร์เฟซ]
ที่อยู่ = 10.8.0.2/24
DNS = 8.8.8.8
คีย์ส่วนตัว = ส่วนตัว
[เพียร์]
PublicKey = สาธารณะ
PresharedKey = พรีแชร์
IP ที่อนุญาต = 0.0.0.0/0, ::/0
ปลายทาง = IP:PORT
PersistentKeepalive = 25
ไฟล์ conf ไคลเอนต์หนึ่งไฟล์บน S-B:
[อินเตอร์เฟซ]
ที่อยู่ = 10.7.0.2/24
DNS = 8.8.8.8
คีย์ส่วนตัว = ส่วนตัว
[เพียร์]
PublicKey = สาธารณะ
PresharedKey = พรีแชร์
IP ที่อนุญาต = 0.0.0.0/0, ::/0
ปลายทาง = IP:PORT
PersistentKeepalive = 25