Wireguard VPN 出站和入站

Wireguard VPN 出站和入站

我正在尝试设置一个 Wireguard 隧道,以便 A 使用 B 的 IP 进行出站和入站流量(像代理,而不是标准 VPN 配置)。两个盒子都是 Ubuntu 16.04。

A 是 eth0,位于具有 NAT 的路由器后面,位于 DMZ 上,IP 为 A

B 有两个公网 IP:一个主 IP(ens3 又名 B1),一个辅助 IP(ens3:0 又名 B2)。辅助 IP 应专用于 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?

答案1

我从 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 接口发送流量。如果您正在运行基于对等的服务,则可能就是这种情况。

相关内容