通过 VPS 连接到 wireguard 对等体

通过 VPS 连接到 wireguard 对等体

我当前的 Wireguard 设置有一个 VPS 连接到不同本地网络上的两个设备。每个家庭网络设备都使用 Wireguard 连接到 VPS,但未配置为接受彼此的连接(它们尚未在彼此的配置文件中添加为对等设备)。

我想使用类似于反向代理服务器的 VPS,以便家庭设备 1 可以连接到 VPS 并将其流量路由到家庭设备 2,而无需在两个家庭设备之间配置直接连接(本质上是集线器和辐射模型)。有没有办法以这种方式路由流量?

当前家庭网络设备配置文件:

[Interface]
Address = 10.0.0.2/8
SaveConfig = true
ListenPort = 53910
FwMark = 0xca6c
PrivateKey = <privkey>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.1/32
Endpoint = <IP address>

服务器配置文件:

[Interface]
Address = 10.0.0.1/8
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;
ListenPort = 51820
PrivateKey = <privkey>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.2/32
Endpoint = <IP of home network device 1>

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.0.0.3/32
Endpoint = <IP of home network device 2>

根据当前规则,如果我尝试从设备 1 ping 设备 2,我会收到此错误消息(这似乎表明对等方彼此知道,但它们的配置不正确?)

user@device1:~/wireguard$ ping 10.0.0.3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
From 10.0.0.2 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available

谢谢!

答案1

更新客户端的 WireGuardAllowedIPs设置,以包含您希望每个客户端通过其与 VPS 的 WireGuard 连接访问的其他设备的 IP 地址。例如,像这样允许设备 1 使用 WireGuard 仅连接到设备 2:

[Interface]
Address = 10.0.0.2/8
...

[Peer]
PublicKey = <VPS pubkey>
AllowedIPs = 10.0.0.3/32
...

或者像这样允许设备 1 通过 WireGuard 连接到设备 2 以及 VPS 本身:

[Interface]
Address = 10.0.0.2/8
...

[Peer]
PublicKey = <VPS pubkey>
AllowedIPs = 10.0.0.1/32, 10.0.0.3/32
...

或者像这样允许设备 1 使用 WireGuard 连接来连接到该10.0.0.0/8块中的任何主机:

[Interface]
Address = 10.0.0.2/8
...

[Peer]
PublicKey = <VPS pubkey>
AllowedIPs = 10.0.0.0/8
...

看到这个WireGuard 中心辐射指南请参阅完整示例。

相关内容