Wireguard VPN 出站和入站
我正在嘗試設置一個 Wireguard 隧道,以便 A 將 B 的 IP 用於出站和入站流量(如代理,而不是標準 VPN 配置)。兩個盒子都是 Ubuntu 16.04。
A 是 eth0,位於具有 NAT 和 DMZ 的路由器後面,具有 IP A
B 有兩個公共 IP:一個主 IP(ens3 aka B1)和一個輔助 IP(ens3:0 aka B2)。第二個應該專用於 WG 隧道。
A上的工作組:
Interface Address = 10.200.1.2/24 SaveConfig = true ListenPort = 50614 FwMark = 0xca6c PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [Peer] PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy AllowedIPs = 0.0.0.0/0 Endpoint = <B2>:51820 PersistentKeepalive = 10
B 工作組:
[Interface] Address = 10.200.1.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [Peer] PublicKey = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz AllowedIPs = 10.200.1.0/24 Endpoint = A:50614
A路線:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
B路線:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 B1.B1.B1.1 0.0.0.0 UG 0 0 0 ens3 B2.B2.B2.0 0.0.0.0 255.255.255.0 U 0 0 0 ens3 B1.B1.B1.0 0.0.0.0 255.255.254.0 U 0 0 0 ens3 169.254.169.254 B1.B1.B1.1 255.255.255.255 UGH 0 0 0 ens3
我需要添加哪條路由,以便來自 A 的每個出站數據包都通過 B2 發出,並且每個入站到 B2 的數據包都發送到 A?
我從 Wireguard 社區得到了很多幫助,這就是有效的方法。
一個客戶)
[Interface] Address = B2/32 PrivateKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy [Peer] PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AllowedIPs = 0.0.0.0/0 Endpoint = B2:51820 PersistentKeepalive = 10
B(伺服器)
[Interface] ListenPort = 51820 PrivateKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy [Peer] PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AllowedIPs = B2/32
不要忘記通常的步驟(在 B 上)
- 在防火牆中打開 51820/udp
- 放
net.ipv4.ip_forward = 1
如果 B 上的 wg0 介面顯示不斷增長的錯誤計數,您可能希望為 A 禁用 DMZ 或限制 B2 上正在使用的埠上的入站,這些埠也可能通過 A 到 WG 介面的流量。如果您正在執行基於對等的服務,則可能會出現這種情況。