如何设置 wireguard IPv4 到 IPv6 VPN?

如何设置 wireguard IPv4 到 IPv6 VPN?

我的 ISP 目前不支持 IPv6,我正在尝试为家里的所有计算机设置一个公共 IPv6 地址范围。

我一直在关注指导在设置 wireguard 后,我能够设置 IPv4 VPN。但是出于某种原因,我无法弄清楚如何为对等点分配公共 IPv6 范围。

这是我的服务器的 wg.conf。我不太擅长使用 iptables,但我注释掉了 ip6tables 命令,因为我不想转换地址:

[interface]
ListenPort = 1194
PrivateKey = AMUT1f04Ej4gBquVz9xw/r0jdUFBVDBFCsdNxO0pFXY=
# PostUp = iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostUp = iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
# PostDown = iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE; ip6tables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

[Peer]
PublicKey = YNOhDK0kllJEuGIScYpKbvKVBhRiHdo23UB4ydrk7wg=
AllowedIPs = 10.66.66.3/32,<Public IPv6>::56/128

这是我的客户的 wg.conf:

[Interface]
PrivateKey = KJITzQmb8xdQNMw1FLEzAXrEee4khKNssgGlgVN1CmY=
Address = 10.66.66.3/24,<Public IPv6>::56/128

[Peer]
PublicKey = nXWR6FfgzIh7HfNaQE/91X6rSlQLLrfYvvzgE4grvwA=
Endpoint = <Public IPv4>:1194
AllowedIPs = 0.0.0.0/0,::/0

以下是我的 VPS 的 ifconfig 输出:

# ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet <Public IPv4>  netmask 255.255.255.255  broadcast 0.0.0.0
        inet6 fe80::f816:3eff:feb1:1c0  prefixlen 64  scopeid 0x20<link>
        inet6 <Public IPv6>::55  prefixlen 64  scopeid 0x0<global>
        ether fa:16:3e:b1:01:c0  txqueuelen 1000  (Ethernet)
        RX packets 76989  bytes 14208737 (14.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 69678  bytes 13847183 (13.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

通过上述配置,我的 IPv4 流量可以顺利通过隧道传输,但 IPv6 上却无法通过隧道传输

我尝试过其他解决方案,但并不完全符合我的需要:

  • IPv6 隧道代理:激活时会降低我的网速。
  • VPN:每个设备只分配一个 IPv6 地址,我需要一个范围。

谢谢!

相关内容