过去几天,我一直在尝试在 Scaleway 的 Dedibox 上设置 Wireguard VPN,但收效甚微。首先,IPv4 正在工作,所以至少我没有绝望地迷路。目前,我的同行正在使用私有 IPv4 地址与服务器通信,然后服务器使用 iptables 将它们 nat 到它自己的公共 IP 上。效果很好。现在我也想设置 IPv6,但不使用 nat。我想使用 ip6tables 转发分配给我的对等方的公共 IPv6 地址,并使用这些地址通过 Internet,而不是像使用 IPv4 那样使用 Masquerade 选项。
到目前为止,我在该领域的成功有限。我在 GNS3 中设置了一个小测试环境,没有 Wireguard,绝对可以使用 ip6tables 路由 IPv6 地址(只是为了找出要制定的规则,我对 iptables 有点陌生)。现在我试图在我配备了wireguard的服务器上做同样的事情,但无济于事。我的 PostUp 和 PostDown 目前如下(删除我的 IPv6 地址):
PostUp:
iptables -A FORWARD -o wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -o enp0s20 -j MASQUERADE
ip6tables -t filter -I INPUT 1 -s 2001:db8:abcd:100::/56 -j ACCEPT
ip6tables -t filter -I INPUT 2 -s 2001:db8:abcd:101::/64 -j ACCEPT
ip6tables -t filter -I FORWARD 1 -o wg0 -j ACCEPT
ip6tables -t filter -I FORWARD 2 -i wg0 -j ACCEPT
PostDown:
iptables -D FORWARD -o wg0 -j ACCEPT
iptables -t nat -D POSTROUTING -o enp0s20 -j MASQUERADE
ip6tables -t filter -D INPUT -s 2001:db8:abcd:100::/56 -j ACCEPT
ip6tables -t filter -D INPUT -s 2001:db8:abcd:101::/64 -j ACCEPT
ip6tables -t filter -D FORWARD -o wg0 -j ACCEPT
ip6tables -t filter -D FORWARD -i wg0 -j ACCEPT
分配给我的主接口 (enp0s20) 的公共 IPv6 范围是 2001:db8:abcd:100::/56,而我想为我的 Wireguard 对等方使用 2001:db8:abcd:101::/64。
另一个奇怪的事情是,由于某种原因,我似乎可以在这个网络上的对等方之间进行 ping,但这可能是侥幸,不确定。我目前在这个网络上同时拥有我的工作站和智能手机,并且在我的工作站和智能手机之间 ping 可以在 Windows 上使用以下命令正常工作:
ping -6 -S 2001:db8:abcd:101::2 2001:db8:abcd:101::3
我的工作站以 2 结尾,我的智能手机以 3 结尾。
我完全不知所措,有人可以帮助我吗?