我在 AWS EC2 中有一台机器运行 Ubuntu 16.04 (B),其中 Wireguard 作为某些 Road Warrior 设备的 VPN 服务器运行 (C)。
我将尝试在下面画出草图:
+-----+ +-----+ +-----+
| | ---------------------------> | | -------------------------> | |
| A | 172.30.0.5/16 172.30.0.6/16 | B | 10.70.0.1/24 10.70.0.2/32 | C |
| | ens5 eth0 | | wg0 wg0 | |
+-----+ +-----+ +-----+
我想10.70.0.0/24
将从 (A) 发往 (A) 的流量经由 (B) 路由到 (C)。
我尝试了以下配置:
在主机(A)上:
ip route add 10.70.0.0/24 via 172.30.0.6
EC2 安全组允许所有来往的流量172.16.0.0/12
。
在主机(B)上:
sysctl -w net.ipv4.ip_forward 1
ufw allow from 172.16.0.0/12
ufw route allow out on wg0
iptables -t nat -A POSTROUTING -s 172.16.0.0/12 -o wg0 -j MASQUERADE
我已经验证所有接口都启用了转发功能,如下所述:https://askubuntu.com/a/923292
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.wg0.forwarding = 1
EC2 安全组允许所有来往的流量172.16.0.0/12
。
我甚至尝试过DEFAULT_FORWARD_POLICY="ACCEPT"
设置/etc/default/ufw
。
我不知道这里还缺少什么,我无法让任何数据包通过。在主机 (B)iptables
上看不到任何数据包通过其FORWARD
链:
iptables -nv -L FORWARD
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ufw-before-logging-forward all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-before-forward all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-after-forward all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-after-logging-forward all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-reject-forward all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ufw-track-forward all -- * * 0.0.0.0/0 0.0.0.0/0