利用ipv6和阿里云域名外网访问群晖NAS服务器

  • 25,138

写在前面

  1. 写完后面现这段写得太长了,如果看不下去,可以直接跳到第二段;
  2. 如果你没有阿里云域名,也不想花钱买域名,可以看下后面白嫖党的方案
  3. 如果你是win用户,或者在群晖上安装了win虚拟机,可以直接看win版本的AliyunDDNS方案

 

IPV6现在已经很普遍了,相对公网IP,应该更容易获取吧,特别是移动大内网,公网IP是不可能的了,但IPV6默认都是开通的了,没开的大多也是光猫没开放(万恶的yd,锁光猫盒子……),看看能不能联系运营商解决。关于DDNS,虽然群晖自带的QC也能内网穿透了,但很多应用,比如wordpress,包括docker,QC环境下都用不了。当然群晖自带的photo station、moments、video station、audio station、driver等都是支持的,这个还是比较良心的,而且试用过,速度也都还行。当然爱折腾的肯定不仅仅满足于这些的,漫画服务器(传送门:http://www.ptyqm.com/27019.html)、电子书服务器这些都要搭起来(传送门:http://www.ptyqm.com/27218.html),这个时候你就需要一个可以直接访问到群晖的通道了。

众所周知但IPV4总共只能分配约43亿个地址,从现在各类联网的电子设备来说,其实是不够用的,所以大家也别骂运营商不给自己公网ip了,真实原因是,公网ip根本不够用!IPV6由于位数是IPV4的4倍,可分配的地址达到10的26次方,甚至可以分配地址到空中的尘埃。所以大多数人是有IPV6的,而且这个IPV6是唯一的,相当于也是公网ip,但问题是由于某些原因,IPV6并不固定(啥原因呢,一句话讲不清楚,可移步:https://zhuanlan.zhihu.com/p/100793846),大概3天左右就会换一下,网上能找到群晖自动任务脚本,自动把IPV6地址用邮件发到你的邮箱(传送门:https://www.jianshu.com/p/ebdfe79bf645),当这样需要到邮箱查邮件,然后更改DDNS设置,实在不够优雅,那么有没有更好的办法呢。其实各大域名运营商都为大家提供了自动DDNS的接口,通过群晖自动任务完全能实现动态ipv6的自动DDNS。下面就以阿里云域名为例给大家分享一下具体的设置步骤。

1)IPV6地址测试

虽然你可能已经开通IPV6网络,路由器也支持ipv6,但还是要先测试一下,这步测试不过,后面的做了也没意义。没有设置IPV6的可以看这里《启用IPV6,chdbits/hdsky/leaguehd等PT站打不开最佳解》

在浏览器中输入http://test-ipv6.com,如果看到类似下面的页面,表示IPV6可用。画框的地方是运营商,可以看到显示的是大移动。

利用ipv6和阿里云域名外网访问群晖NAS服务器

IPV6地址测试

2)域名申请

如果有域名可以直接跳过该步,如果没有,其实申请一个也要不了多少钱,特别对于新用户,域名简直便宜的令人发指(因为阿里的域名我注册过几个了,看不到新用户优惠,这里放的腾讯的),因为只是连接群晖用,建议选最便宜的,或者入个cn也就够了。此外连接群晖因为不建站,也是不需要备案的,基本上是即插即用!具体怎么申请网上的攻略太多了,我就不再啰嗦了!

利用ipv6和阿里云域名外网访问群晖NAS服务器

3)AccessKey申请

申请好域名就可以去申请AccessKey了,这个东西有什么用呢,假如把你的阿里云比种一间房间,这个就可以理解为打开房间的钥匙,有了它可以进你的房间随意捣乱,所以AccessKey申请后,一定要注意保密,如果感觉被泄露了,也可以重新生成。本篇攻略里是想通过他获取设置域名解析的权利,这样就可以在群晖上直接修改阿里云域名的解析了,从而实现动态ip的DNS。申请步骤如下:

1> 进入阿里云的控制台,注意,不进入看不到AccessKey选项

2> 点击AccessKey管理,会提示使用子用户AccessKey,但我每次都没理会,因为私人小站点,安全性要求并不高,直接选择继续使用AccessKey。

利用ipv6和阿里云域名外网访问群晖NAS服务器

利用ipv6和阿里云域名外网访问群晖NAS服务器

 创建accesskey

3> 进去后,假如之前未使用过AccessKey,此时列表应该是空的,可以从右上角的“创建AccessKey”按钮创建一个新的key,此时需要输入手机验证码。

4> 创建完成后,请把AccessKey ID和AccessKey Secret复制出来,AccessKey Secret是不可见的,可以点击显示,然后输入手机验证码,让其可见。有了这两个,你的AccessKey就可以用了。

利用ipv6和阿里云域名外网访问群晖NAS服务器

查看AccessKey

 

4)上传sh脚本并设置自动任务

其实这一步是花了最多时间的,因为网上去找阿里云动态IP的DNS,找到的大多是基于Python的方案,可能是因为windows用户多,Python具有跨平台的特性,但由于Python需要安装阿里云的api包,我在群晖上试了接近一整天,装python,easy-install,pip,gcc……但毕竟群晖不是面向开发的,最后还是失败告终。后来想想linux是以强大的sh指令见长的,有没有可用的sh脚本呢,果然让我找到了。这个方案不需要配制任何环境,只要设置几个参数放到群晖上,设置一下自动任务就OK了。

1> 下载sh原始脚本,sh脚本可以在最后面的百度网盘找到

2> 获取本地网卡名称,由于需要绑定本地动态变化的ipv6地址,但地址是跟网卡相关的,所以首先要获取当前网卡,打开群晖的ssh选项。

利用ipv6和阿里云域名外网访问群晖NAS服务器

打开ssh

下载putty(下载链接:https://pan.baidu.com/s/1EfOsWFlnOiRWASoZAG6vuA ,提取码:zmwv),下载后输入群晖的ip,选择SSH连接,打开后输入群晖管理员用户,然后输入密码,注意linux输入密码不会显示任何东西,正常输入即可。

利用ipv6和阿里云域名外网访问群晖NAS服务器

putty连接群晖

连接成功后,输入指令 ifconfig,这时会弹出一堆字符,如下图,其它的不用管,只需要记住本地网卡名称即可。注意前面docker0~docker406都是安装docker镜像后安装的虚拟网卡,我们只需要记住eth0就行了

利用ipv6和阿里云域名外网访问群晖NAS服务器

ifconfig

3> 修改sh参数,要修改的参数主要有4个,如下图,分别是aliddnsipv6_ak、aliddnsipv6_sk这个前面已经通过AccessKey申请获得了。然后aliddnsipv6_domain就输入你申请的域名就行。aliddnsipv6_name1表示子域名,如果你的域名只是用来访问群晖的,可以直接设置成“www”,这样就可以用一级域名访问群晖了,由于这个还是我个人博客的域名,所以给他分配的子域名是nas。

利用ipv6和阿里云域名外网访问群晖NAS服务器

修改sh

4> 上传并测试脚本,将脚本上传到群晖上,为方便管理,建议新建一个文件夹。方法如下:

①打开File station, 新增共享文件夹,取名为DDNS

②将修改好后的aliyun.sh上传到DDNS文件夹,右键文件属性,复制文件路径。例如“/volume1/DDNS/aliddns.sh”

利用ipv6和阿里云域名外网访问群晖NAS服务器

复制路径

③在putty中输入sh /volume1/DDNS/aliddns.sh测试一下,脚本能否正常运行,必须看到added record并且后面跟上一段代码才表示成功

利用ipv6和阿里云域名外网访问群晖NAS服务器

试运行脚本

如果不放心,还可以去看一下,阿里云后台的域名解析记录。首先点开你的域名,左边选择解析日志,可以看到刚刚新增加了二级域名为nas的域名解析操作。

利用ipv6和阿里云域名外网访问群晖NAS服务器

添加成功记录

④试一下用域名访问群晖,输入“nas.你的域名:500”,如果能进入登录页面,表示设置成功。

利用ipv6和阿里云域名外网访问群晖NAS服务器

用域名访问群晖

5> 设置自动任务,当然不可能每次ip更新了都要手动执行一次这个命令,所以需要利用群晖的自动任务,在群晖控制面板里选择任务计划-新建-计划的任务-用户自定义脚本,设置任务名称。在计划中设置每天运行,运行频率10分钟(不用担心频率太高,脚本里有判断,只有当发现地址变了才会重新设置域名解析)。脚本中输入“sh /volume1/DDNS/aliddns.sh”,然后保存就可以了。

利用ipv6和阿里云域名外网访问群晖NAS服务器

自动任务

 

5)不想花钱买域名怎么办

没有阿里云域名,也不想申请域名,毕竟首年需要便宜,后面续费就是24-58/年,也是一笔开销,那么怎么办呢,我也在网上找到面向白嫖党的解决方案。通过申请dynv6域名来实现,步骤跟阿里云是类似的,只不过因为是国外站点,所以需要梯子才能通过邮箱激活,手头没有好用的梯子,就不能给大家具体测试了,具体可参照这个文章:https://koolshare.cn/thread-158240-1-1.html。sh脚本可以在最后面的百度网盘找到。

利用ipv6和阿里云域名外网访问群晖NAS服务器
注册dynv6

利用ipv6和阿里云域名外网访问群晖NAS服务器

激活需要挂梯子

6)win平台解决方案

如果你用的win平台,或者在群晖上安装了win虚拟机,也可以直接用win平台下的AliyunDDNS工具。该工具也可以在文末的百度网盘下载,解压缩打开AliyunDDNS.exe,参数设置并不复杂,如果不清楚的可以翻看前面的说明。

利用ipv6和阿里云域名外网访问群晖NAS服务器

win平台上的设置

设置完成后同样需要设置自动任务,win平台怎么设置自动任务,这个百度应该也很容易能搜到。

结语

群晖外网访问的需求应该还是蛮大的,特别对于喜欢折腾的人,一出门就好多功能用不了,很是难受。用域名访问也不需要记长长的ip了。相关的文件我都打包上传到百度网盘了,神秘代码:1DqOQnQ_I7xx9uT9PaXwUiA 提取码:ddns

文件说明:

1> aliddns.sh 阿里云自动dns脚本

2> dynv6.sh  dynv6自动dns脚本

3> Windows版-AliyunDDNS.zip

版权说明:以上脚本和程序均是搜集于网络,由于经过多次转载,已经找不到原出处了,如果对版权有异议的,请联系我处理,谢谢!

微信扫一扫关注此公众号, 获取PT站注册地址! weinxin

wylb521
  • 本文由 发表于 2020年8月17日 22:12:52
评论  10  访客  10
    • 锟絣順綺锟皆匡拷锟斤拷
      锟絣順綺锟皆匡拷锟斤拷 1

      脚本在百度搜什么关键字?

      • leary Smith
        leary Smith 0

        ipv6 + aliyun ddns快 还是 公网ip + ailiyun ddns 快?

          • wylb521
            wylb521

            @ leary Smith 有公网ip,优先公网。ipv6 只有在有ipv6网络的时候可以用。至于速度,是看你的上下行带宽。

          • Ake
            Ake 0

            sh脚本putty测试运行,提示added record 后面没有数字,这个问题怎么解决?是哪里有错误呢

              • gulang
                gulang 0

                @ Ake 我也一样,added record后面没数字。有谁知道哪儿错了吗?tplink路由无防火墙设置。

              • 请输入昵称
                请输入昵称 0

                为什么我获取的ipv6地址是fd06:1297这样的内网ipv6地址,我公网ipv6。

                • xing
                  xing 0

                  人在外网不支持ipv6的地方访问不了nas啊?这个可以解决吗?

                    • NK影音
                      NK影音 9

                      @ xing 直接用群晖的QC访问就行了

                    • ZHEKD
                      ZHEKD 0

                      按照你的方法来,ipv6有了,ping的到,就是访问用不了,nas直连电信光猫

                    匿名

                    发表评论

                    匿名网友 填写信息

                    :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

                    确定

                    取消