我在 Ubuntu VPS 服务器上托管了多台 Wireguard 服务器。每台 VPN 服务器上都设置了对等点。我已将服务器设置为“网格”配置,它们都可以直接 ping 通彼此。服务器已启用 ipv4 转发。我可以作为对等点连接到每台服务器,并通过该服务器路由我的互联网连接。
我想通过多个 Wireguard 服务器(多跳)转发一些对等点,同时让一些对等点通过第一个 Wireguard 跳点连接到互联网。最终,我打算使用节点应用程序根据需要执行相关 iptables 规则(或任何解决方案)来动态控制这一点
例如:
对等端 1 > 服务器 1 > 服务器 2 > 互联网
对等点 2 > 服务器 1 > 互联网
对等点 3 > 服务器 3 > 互联网
对等点 4 > 服务器 2 > 服务器 1 > 互联网
使用 iptables 规则可以实现这一点吗?我花了几天时间阅读类似的帖子并尝试各种方法。我最接近的是在 Server1 上设置以下内容:
iptables -t nat -A PREROUTING -s 10.42.1.4(Peer1) -j DNAT --to-destination 10.42.1.2(Server2)
iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
使用时,tcpdump -n -v -i wg0
我可以看到数据包从 Server1 传递到 Server2,但看起来 MAQUERADE 规则正在改变目标 IP?我iptables -t nat -A POSTROUTING -d 10.42.1.2 -j SNAT --to-source 10.42.1.4
也尝试添加。