说下原理:
A鸡获取he的ipv6 /48或者/64段,然后利用wireguard组网分配子网给B鸡。

开干,我习惯用netplan来白嫖he的网络,所以一把梭
A鸡:

apt install netplan.io -y

安装好netplan就自己去he里获取netplan的指南,记得用>0.103的版本
然后

netplan try
#回车
curl ip.me -6

看看是不是你获取的ipv6.
现在配置wireguard服务端

wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh

根据提示完成操作。

然后用ifconfig看看是不是开了一个wg0的wireguard网卡。

别急,好戏即将开场。
你add new client后在当前路径下会有一个 名称.conf
你现在可以直接把HE给你的ipv6的/64段,切分一下。比如说你获取到的是2001:xxx:xx:xx::2/64,那你可以自己想一个2001:xxx:xx:xx::2::/80,对吧,以此类推,你获取的是/48也可以换/64,记得自己算子网。
然后在 名称.conf下,把默认分配的ipv6,fddd:2c4:2c4:2c4::2/64改成2001:xxx:xx:xx::2::/80(反正就是你打算分配给B鸡的子网网段或地址),然后保存一下,在终端中cat一下 这个就是你的B鸡要用到的wireguard conf了。
到了这里A鸡先别急,还要去/etc/wireguard下修改一下wg0.conf,修改什么?
改你分配给B鸡的ipv6啊,fddd:2c4:2c4:2c4::2/64改成2001:xxx:xx:xx::2::/80(反正就是你打算分配给B鸡的子网网段或地址)
到这里,A鸡要忙的就只差一个

wg-quick down wg0
wg-quick up wg0

接着我们去B鸡,B鸡就神奇了,只需要

apt install wireguard-tools openresolv -y

就行,然后你把你名称的那个conf在/etc/wireguard下保存一下,搞个he.conf?什么名称都可以,别中文和符号就行。
然后B鸡

wg-quick up he
curl ip.me -6
ping google.com -6

验证一下,基本没啥问题,有我也不知道为啥,自己去研究

我说下原理和以前用iptables搭配wireguard的玩法不同
原理就是B鸡wireguard直接连接A鸡获取A鸡下的he子网,而之前的iptables就是通过转发来达成,并且有点复杂,至于哪个好,我觉得这个好,因为可以保留源IP信息。