写在前面
- 写完后面现这段写得太长了,如果看不下去,可以直接跳到第二段;
- 如果你没有阿里云域名,也不想花钱买域名,可以看下后面白嫖党的方案
- 如果你是 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 地址测试
2)域名申请
如果有域名可以直接跳过该步,如果没有,其实申请一个也要不了多少钱,特别对于新用户,域名简直便宜的令人发指(因为阿里的域名我注册过几个了,看不到新用户优惠,这里放的腾讯的),因为只是连接群晖用,建议选最便宜的,或者入个 cn 也就够了。此外连接群晖因为不建站,也是不需要备案的,基本上是即插即用!具体怎么申请网上的攻略太多了,我就不再啰嗦了!
3)AccessKey 申请
申请好域名就可以去申请 AccessKey 了,这个东西有什么用呢,假如把你的阿里云比种一间房间,这个就可以理解为打开房间的钥匙,有了它可以进你的房间随意捣乱,所以 AccessKey 申请后,一定要注意保密,如果感觉被泄露了,也可以重新生成。本篇攻略里是想通过他获取设置域名解析的权利,这样就可以在群晖上直接修改阿里云域名的解析了,从而实现动态 ip 的 DNS。申请步骤如下:
1> 进入阿里云的控制台,注意,不进入看不到 AccessKey 选项
2> 点击 AccessKey 管理,会提示使用子用户 AccessKey,但我每次都没理会,因为私人小站点,安全性要求并不高,直接选择继续使用 AccessKey。
创建 accesskey
3> 进去后,假如之前未使用过 AccessKey,此时列表应该是空的,可以从右上角的 “创建 AccessKey” 按钮创建一个新的 key,此时需要输入手机验证码。
4> 创建完成后,请把 AccessKey ID 和 AccessKey Secret 复制出来,AccessKey Secret 是不可见的,可以点击显示,然后输入手机验证码,让其可见。有了这两个,你的 AccessKey 就可以用了。
查看 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 选项。
打开 ssh
下载 putty(下载链接:https://pan.baidu.com/s/1EfOsWFlnOiRWASoZAG6vuA ,提取码:zmwv),下载后输入群晖的 ip,选择 SSH 连接,打开后输入群晖管理员用户,然后输入密码,注意 linux 输入密码不会显示任何东西,正常输入即可。
putty 连接群晖
连接成功后,输入指令 ifconfig,这时会弹出一堆字符,如下图,其它的不用管,只需要记住本地网卡名称即可。注意前面 docker0~docker406 都是安装 docker 镜像后安装的虚拟网卡,我们只需要记住 eth0 就行了
ifconfig
3> 修改 sh 参数,要修改的参数主要有 4 个,如下图,分别是 aliddnsipv6_ak、aliddnsipv6_sk 这个前面已经通过 AccessKey 申请获得了。然后 aliddnsipv6_domain 就输入你申请的域名就行。aliddnsipv6_name1 表示子域名,如果你的域名只是用来访问群晖的,可以直接设置成 “www”,这样就可以用一级域名访问群晖了,由于这个还是我个人博客的域名,所以给他分配的子域名是 nas。
修改 sh
4> 上传并测试脚本,将脚本上传到群晖上,为方便管理,建议新建一个文件夹。方法如下:
①打开 File station, 新增共享文件夹,取名为 DDNS
②将修改好后的 aliyun.sh 上传到 DDNS 文件夹,右键文件属性,复制文件路径。例如 “/volume1/DDNS/aliddns.sh”
复制路径
③在 putty 中输入 sh /volume1/DDNS/aliddns.sh 测试一下,脚本能否正常运行,必须看到 added record 并且后面跟上一段代码才表示成功
试运行脚本
如果不放心,还可以去看一下,阿里云后台的域名解析记录。首先点开你的域名,左边选择解析日志,可以看到刚刚新增加了二级域名为 nas 的域名解析操作。
添加成功记录
④试一下用域名访问群晖,输入 “nas. 你的域名:500”, 如果能进入登录页面,表示设置成功。
用域名访问群晖
5> 设置自动任务,当然不可能每次 ip 更新了都要手动执行一次这个命令,所以需要利用群晖的自动任务,在群晖控制面板里选择任务计划 - 新建 - 计划的任务 - 用户自定义脚本,设置任务名称。在计划中设置每天运行,运行频率 10 分钟(不用担心频率太高,脚本里有判断,只有当发现地址变了才会重新设置域名解析)。脚本中输入 “sh /volume1/DDNS/aliddns.sh”, 然后保存就可以了。
自动任务
5)不想花钱买域名怎么办
没有阿里云域名,也不想申请域名,毕竟首年需要便宜,后面续费就是 24-58 / 年,也是一笔开销,那么怎么办呢,我也在网上找到面向白嫖党的解决方案。通过申请 dynv6 域名来实现,步骤跟阿里云是类似的,只不过因为是国外站点,所以需要梯子才能通过邮箱激活,手头没有好用的梯子,就不能给大家具体测试了,具体可参照这个文章:https://koolshare.cn/thread-158240-1-1.html。sh 脚本可以在最后面的百度网盘找到。
注册 dynv6
激活需要挂梯子
6)win 平台解决方案
如果你用的 win 平台,或者在群晖上安装了 win 虚拟机,也可以直接用 win 平台下的 AliyunDDNS 工具。该工具也可以在文末的百度网盘下载,解压缩打开 AliyunDDNS.exe,参数设置并不复杂,如果不清楚的可以翻看前面的说明。
win 平台上的设置
设置完成后同样需要设置自动任务,win 平台怎么设置自动任务,这个百度应该也很容易能搜到。
结语
群晖外网访问的需求应该还是蛮大的,特别对于喜欢折腾的人,一出门就好多功能用不了,很是难受。用域名访问也不需要记长长的 ip 了。相关的文件我都打包上传到百度网盘了,神秘代码:1DqOQnQ_I7xx9uT9PaXwUiA 提取码:ddns
文件说明:
1> aliddns.sh 阿里云自动 dns 脚本
2> dynv6.sh dynv6 自动 dns 脚本
3> Windows 版 - AliyunDDNS.zip
版权说明:以上脚本和程序均是搜集于网络,由于经过多次转载,已经找不到原出处了,如果对版权有异议的,请联系我处理,谢谢!
原文链接:http://www.ptyqm.com/27237.html