说下原理:
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信息。