我当前的 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 对设备 2 执行 ping 操作,我会收到此错误消息(这似乎表明对等方彼此了解,但配置不正确?)
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
谢谢!
更新您客户端的 WireGuard
AllowedIPs
设置,以包括您希望每个客户端通过其与 VPS 的 WireGuard 连接访问的其他设备的 IP 地址。例如,像这样允许设备 1 使用 WireGuard 仅连接到设备 2:或者像这样允许设备 1 通过 WireGuard 连接到设备 2 以及 VPS 本身:
或者像这样允许设备 1 使用 WireGuard 连接来连接到
10.0.0.0/8
块中的任何主机:有关完整示例,请参阅此WireGuard hub-and-spoke 指南。