ฉันมีการตั้งค่าที่ใช้งานได้ของ wireguard (เซิร์ฟเวอร์ Ubuntu 20.04, ไคลเอนต์ Ubuntu 20.04 หนึ่งเครื่องและไคลเอนต์ Windows 10 หนึ่งเครื่อง) ฉันสามารถเชื่อมต่อกับอุปกรณ์ที่อยู่หลังเซิร์ฟเวอร์ VPN ได้
เซิร์ฟเวอร์ VPN (จุดสิ้นสุด): 1.2.3.2/32
Public Subnet EndPoint อยู่ใน: 1.2.3.0/27
ที่อยู่เซิร์ฟเวอร์ WireGuard: 10.2.0.1/16
แลนสำนักงาน: 10.0.0.0/16
ที่อยู่เพียร์: 10.2.0.3/16
ปัญหาคือไคลเอนต์ไม่สามารถเชื่อมต่อกับสิ่งที่ควรผ่าน VPN รวมถึงที่อยู่ปลายทางเมื่อฉันเพิ่มซับเน็ตสาธารณะของอินเทอร์เฟซสาธารณะ WireGuard IP ที่อนุญาต
ในการกำหนดค่าไคลเอ็นต์:
AllowedIPs = 10.2.0.0/16, 10.0.0.0/16, 1.2.3.0/27
หรือเพิ่ม จุดสิ้นสุด
ที่อยู่:
AllowedIPs = 10.2.0.0/16, 10.0.0.0/16, 1.2.3.2/32
มันใช้งานได้เมื่อฉันเพิ่มที่อยู่ส่วนบุคคลอื่นๆ จากซับเน็ตสาธารณะ ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์เหล่านั้นผ่าน VPN (traceroute พูดอย่างนั้น):
AllowedIPs = 10.2.0.0/16, 10.0.0.0/16, 1.2.3.3/32, 1.2.3.4/32
ข้อมูลเพิ่มเติม:
ลูกค้า
$ sudo cat /etc/wireguard/wg1.conf
[อินเตอร์เฟซ]
คีย์ส่วนตัว = <สนิป>
ที่อยู่ = 10.2.0.3/16
[เพียร์]
PublicKey = <สนิป>
AllowedIPs = 10.2.0.0/16, 10.0.0.0/16, 1.2.3.3/32, 1.2.3.4/32, 1.2.3.0/27
จุดสิ้นสุด = 1.2.3.2:51820
เส้นทาง $ ip
เริ่มต้นผ่าน 10.25.0.1 dev wlp0s20f3 proto dhcp metric 600
ลิงก์ขอบเขต 10.0.0.0/16 dev wg1
10.25.0.0/16 dev wlp0s20f3 โปรโตเคอร์เนลขอบเขตลิงก์ src 10.25.50.12 เมตริก 600
10.2.0.0/16 dev wg1 proto kernel ขอบเขตลิงค์ src 10.2.0.3
ลิงก์ขอบเขต 1.2.3.0/27 dev wg1
ลิงก์ขอบเขต 1.2.3.3 dev wg1
ลิงก์ขอบเขต 1.2.3.4 dev wg1
$ sudo tcpdump -nn -i ใด ๆ 'udp port 51820'
tcpdump: เอาต์พุต verbose ถูกระงับ ใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลแบบเต็ม
ฟัง LINUX_SLL ประเภทลิงก์ใด ๆ (Linux สุก v1) ขนาดการจับภาพ 262144 ไบต์
23:21:43.439854 IP 10.2.0.3.34656 > 1.2.3.1.51820: UDP ความยาว 148
23:21:48.705386 IP 10.2.0.3.34656 > 1.2.3.1.51820: UDP ความยาว 148
23:21:54.081297 IP 10.2.0.3.34656 > 1.2.3.1.51820: UDP ความยาว 148
23:21:59.201381 IP 10.2.0.3.34656 > 1.2.3.1.51820: UDP ความยาว 148
Traceroute หมดเวลา
เซิร์ฟเวอร์
เส้นทาง $ ip
ค่าเริ่มต้นผ่าน 1.2.3.1 dev enp1s0 proto static
10.0.0.0/16 dev enp6s0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.0.25.20
10.0.0.0/16 ผ่าน 10.0.1.254 dev enp6s0 proto static metric 100
10.2.0.0/16 dev wg0 proto kernel ขอบเขตลิงค์ src 10.2.0.1
1.2.3.0/27 dev enp1s0 โปรโตเคอร์เนลขอบเขตลิงก์ src 1.2.3.2
$ sudo cat /etc/wireguard/wg0.conf
[อินเตอร์เฟซ]
ที่อยู่ = 10.2.0.1/16
SaveConfig = จริง
PostUp = เส้นทาง ufw อนุญาตใน wg0 ออกใน enp6s0
PostUp = iptables -t nat -I โพสต์ -o enp6s0 -j MASQUERADE
PreDown = ลบเส้นทาง ufw อนุญาตใน wg0 ออกใน enp6s0
PreDown = iptables -t nat -D POSTROUTING -o enp6s0 -j MASQUERADE
ListenPort = 51820
คีย์ส่วนตัว = <สนิป>
[เพียร์]
PublicKey = <สนิป>
IP ที่อนุญาต = 10.2.0.2/32
จุดสิ้นสุด = <snipped>:37785
[เพียร์]
PublicKey = <สนิป>
IP ที่อนุญาต = 10.2.0.3/32
จุดสิ้นสุด = <สนิป>:37950