一、前言
由于IPv4资源有限,家庭宽带无法获取到固定的公网IPv4地址(动态的公网IP地址也无法得到),因此使用IPv6来访问我们家庭局域网中的NAS设备。
二、准备工作
(一)检查家庭宽带是否支持IPv6
打开浏览器,输入网址 https://www.test-ipv6.com/ 。若得到如下结果,就说明你的家庭宽带支持IPv6,然后我们去注册域名就可以了。
若得到的结果是不支持IPv6,就需要检查路由器或者光猫是否开启了IPv6。实在不行可以联系宽带维修师傅来帮忙检查一下。
(二)准备域名
推荐阿里云购买并注册域名,点击域名注册进行跳转。
(三)下载 aliddns.sh 文件
点击下载文件 提取码:LV71
aliddns.sh
文件的作用就是当NAS的IPv6地址重新分配之后,通知阿里云重新解析域名,将新的IPv6地址与域名重新绑定在一起。
三、实际操作
(一)配置 aliddns.sh
文件
1. 配置AccessKeyId、Access Key Secret、域名
#引号里改成刚刚申请的AccessKeyId
aliddnsipv6_ak="AccessKeyId" #引号里改成刚刚申请的Access Key Secret
aliddnsipv6_sk="Access Key Secret" #引号里改成自定义一个名字,需要符合域名规范
aliddnsipv6_name1='www'#引号里改成自己注册的域名
aliddnsipv6_domain='hongliang.tech'
aliddnsipv6_ttl="600"#举例,你在万网注册了一个域名叫hongliang.tech,那么aliddnsipv6_domain后面就填hongliang.tech,然后再自己想一个名字,比如nas,然后填到aliddnsipv6_name1后面,那么一会你访问群晖的地址就是http://nas.hongliang.tech:5000if [ "$aliddnsipv6_name1" = "@" ]
thenaliddnsipv6_name=$aliddnsipv6_domain
elsealiddnsipv6_name=$aliddnsipv6_name1.$aliddnsipv6_domain
finow=`date`die () {echo $1
}ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $2}' | awk -F"/" '{print $1}'` || die "$ipv6"
...
...
配置文件中的 AccessKeyId、Access Key Secret 都在阿里云里面获取,如下图:
如果是第一次进入,那就创建一个就OK啦。
2. 配置网卡名称
将 aliddns.sh
文件中第20行的eth0
更改成自己的网卡名称。
ipv6s=`ip addr show eth0 | grep "inet6.*global" | awk '{print $2}' | awk -F"/" '{print $1}'` || die "$ipv6"
2.1 获取网卡名称
1). 首先要打开NAS的ssh通道:控制面板 > 终端机和SNMP,勾选启动SSH功能,端口号可以就用22。
2). 使用另一台电脑在局域网内通过ssh方式登录NAS系统,并输入 ipconfig
命令获取网卡配置。
root@DS918Plus:~$ ifconfig
docker0 Link encap:Ethernet HWaddr 02:42:4A:AA:CD:37 inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0inet6 addr: fe80::42:4aff:feaa:cd37/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:94579 errors:0 dropped:0 overruns:0 frame:0TX packets:84042 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:8344591 (7.9 MiB) TX bytes:10967098 (10.4 MiB)eth0 Link encap:Ethernet HWaddr 00:11:32:12:34:66 inet addr:192.168.50.100 Bcast:192.168.50.255 Mask:255.255.255.0inet6 addr: 240e:331:xxxx:xxxx:xxxx:xxxx:fe12:3466/64 Scope:Globalinet6 addr: fe80::211:32ff:fe12:3466/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:34645943 errors:0 dropped:2 overruns:0 frame:0TX packets:11287422 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000 RX bytes:46488245824 (43.2 GiB) TX bytes:6033141548 (5.6 GiB)Interrupt:19 memory 0xd0680000-d06a0000 lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:2525366 errors:0 dropped:0 overruns:0 frame:0TX packets:2525366 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1 RX bytes:313537724 (299.0 MiB) TX bytes:313537724 (299.0 MiB)
其中 docker0
是Docker容器的,不是我们需要的。我们只需要查找拥有inet6 addr: 240e:331:xxxx:xxxx:xxxx:xxxx:fe12:3466/64 Scope:Global
这段代码的网卡名称就可以了,所以我这里的是 eth0
。
PS:
inet6 addr: fe80::211:32ff:fe12:3466/64 Scope:Link
这种是内网IPv6,网外是无法访问的。240e:331:xxxx:xxxx:xxxx:xxxx:fe12:3466
这才是我们需要的IPv6地址。
3.域名解析
进入阿里云控制台,解析域名,添加记录
- 记录类型:
AAAA
- 主机记录:与
aliddns.sh
文件中的aliddnsipv6_name1
值要一样 - 记录值:NAS系统的IPv6地址
- TTL:10分钟
4.NAS系统添加任务计划
步骤:控制面板 > 任务计划 > 新增 > 计划的任务 > 用户定义的脚本
设置每天每10分钟执行一次,如下图:
在任务设置中,设置执行 aliddns.sh
文件。需要全路径。
点击运行,执行一次该任务,等待阿里云解析完成,就可以通过IPv6访问了。
四、其他
这是我的NAS导航网站,只支持IPv6访问。