TrueNAS 高级应用 篇五:IPV6 远程组网 SD-WAN ?
今天写点热门的,随着我国ipv6的普及基本上运营商都给提供了公网ipv6。之前因为有的小伙伴们没办法获取到v4公网,才用了曲线救国的方法---------内网穿透,因为我有公网ipv4,而且ipv6确实比v4复杂许多,有很多概念不太一样,我也只是了解一点点,我只是个电脑爱好者不是什么专业人士,还是比较懵逼的。目前好多城市的运营商在回收给用户免费提供的公网v4,为了预防这个我最近学习了一下单纯ipv6的情况下,如何回家和异地组网。今天我就用我目前的网络设备演示下我的设置。
我的方案
我用的是免费开源的wireguard来进行异地组网,一个是家里,一个是单位宿舍。这样我两边的设备就可以互联互通了。用这个方案的原因是软件免费、容易获取,配置也很简单,最重要的是性能那也是很优秀的。
本文出场网络设备
硬路由器基本都在当纯ap使用
多年前jd 入手
几个月前 咸鱼入手
pdd 入手 1000+
jd 入手 100
马云家 300+
pdd 200+
pdd 550
pdd 500
必备条件:
你的路由光猫已经配置好了ipv6,设备能正常获取v6地址;
购买一个域名,我买的是腾讯域名;建议买国外的使用体验更好,也有更多服务。腾讯的服务有缩水,不过胜在便宜;
我这里用的网关设置wireguard,有的小伙伴没有这个软路由,可用nas或者盒子之类可以安装linux、 unix系统的设备搭建也是可以的;比如树莓派,n1等等;
用相关的ddns域名软件绑定你的域名分别到你两个不同的路由A、B,我用的ddns-go;
开始配置
确定你的openwrt有安装这些包,没有的话安装一下。
进入网络设置接口设置
东a奋 扽僧
添加接口
添加接口类型选择 wireguard vpn
设置一个和局域网不一样的网段,比如你的局域网是 192.168.1.0/24,这里的ip设置成不一样的这里我的实例是 10.10.1.1/32。listen port 设置一个大一点的端口,我习惯用 50000以上的端口。
记住保存上图这个 public key 我们称为 pub key A;
这个是节点 A, ip 10.10.1.1/32 端口 56700
这里选择一个和局域网相同的Zone;
添加一个节点;
这里的是节点B的信息:
保存这里的pubkey 和 private key;
节点B信息: ip 10.10.1.2/32 pub key private key
域名: yourdomain.com
端口:56700
keeplive 建议25秒
如果是移动设备: endpoint、端口,都不用填写,只需要keeplive 25s。
这样路由A的设置就完了!
现在设置路由B
和上面路由A的设置步骤一样。把上面我们保存好的节点B的信息输入到相关条目,就不在上图了。
路由B:节点信息要填写上刚才保存的路由A的信息。
设置防火墙规则:放行相关端口
全部设置完成,如果参数没有什么错误,应该就可以连上了。
由于是异地联网,建议最好设置好ddns以后,在路由器或者其它设备设置好代理,能够远程操作管理的路由器。
如果您看到最后,这里有我写的一个小脚本:
这个脚本的目的是为了解决ddns ip改变的时候,不能自动重连的问题。我们把这个脚本加到定时任务里面,设定几分钟执行一次就行了。这个脚本会自动检查ddns域名和当前ip是否改变,如果改变会重启wireguard接口。
ipv6 版本
# 后的是注释,第一句除外!可删除
#!/bin/sh
WGIP=`dig +short yourdomain aaaa` #如果是openwrt要安装bind-dig
echo "wg ip $WGIP"
WG3IP=[$WGIP]
echo "wg3 ip $WG3IP"
WG=`wg show wg3 endpoints | awk '''{print $2}'` #wg3 这里应该改成你的接口名字
echo "wg3 endpoint $WG"
if [ "$WG" = "$WG3IP":56300 ];then #这里的56300是你的路由节点监听的port
echo 'ip not change'
else
echo 'ip change'
echo 'restart wg3 waiting ......'
# ifup wg3 #注意我下一句里面的解释,这里wg3你的接口名字
wg setconf wg3 /scripts/wg3.conf #这里是我的wg3.conf 我用的 wg showconf wg3 > wg3.conf 保存的,然后还需要修改下才能使用,不会弄的可以把上一句 ifup wg3 这句注释去掉,这句加上注释,虽然粗暴但是能解决问题。
echo done
fi
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
Chris2007
校验提示文案
hi_Sea
校验提示文案
技术宅是我梦想
# 由于ipv6有个特性,只要地址租期没到,以前的链接可以一直用到租期到了
# 所以这里的逻辑改成对方节点是否通,如果是ipv4 的话还是建议以ddns ip是否
# 改变为逻辑判断优先
ping -q -c 3 10.18.0.1 #这里10.18.0.1改成你对面wg节点的ip
if [ "$?" = 0 ];then
echo 'ip not change'
else
echo '===ip change==='
echo '===restart wg3 waiting ......==='
ifup wg3
# wg setconf wg3 /scripts/wg3.conf
echo ****done****
fi
校验提示文案
龙的传人2022
校验提示文案
薛旭杰
校验提示文案
薛旭杰
校验提示文案
龙的传人2022
校验提示文案
hi_Sea
校验提示文案
Chris2007
校验提示文案
技术宅是我梦想
# 由于ipv6有个特性,只要地址租期没到,以前的链接可以一直用到租期到了
# 所以这里的逻辑改成对方节点是否通,如果是ipv4 的话还是建议以ddns ip是否
# 改变为逻辑判断优先
ping -q -c 3 10.18.0.1 #这里10.18.0.1改成你对面wg节点的ip
if [ "$?" = 0 ];then
echo 'ip not change'
else
echo '===ip change==='
echo '===restart wg3 waiting ......==='
ifup wg3
# wg setconf wg3 /scripts/wg3.conf
echo ****done****
fi
校验提示文案