基于阿里云域名的群晖 DDNS 配置

2020-06-20 11:04:30 17点赞 113收藏 10评论

创作立场声明:经验分享,over

前言

本文内容仅适用于群晖,若应用在其他地方,请自行修改。

本文是基于阿里云的域名解析实现的,使用群晖的 计划任务 + sh 脚本来实现DDNS功能,理论上支持 IPV4 和 IPV6 ,因为个人条件有限,未拥有公网的 IPV4 的地址,所以未针对 IPV4 进行测试。若有问题,也可以留言一起讨论。

目前网络上的基于 sh 脚本的方式实现 DDNS 的代码在我的环境中都已失效,怀疑是群晖版本问题。不想用 docker 或其他方式实现DDNS功能(嫌麻烦),所以我用三脚猫的水平,基于jwping/AliDDNS 的代码完成了我的目的。目前在我机器上正常工作。

基于阿里云域名的群晖 DDNS 配置

环境

硬件:七彩虹 C.J3160M-K 全固态版 V21 主板,板载了 intel 的 J3160 处理器

基于阿里云域名的群晖 DDNS 配置

系统:黑群晖 DSM 6.2.3 版本

基于阿里云域名的群晖 DDNS 配置

代码配置

完整代码请查看GitHub:wudision0416/aliddns4dsm

1. 修改基础配置

修改脚本的`ipv4`或`ipv6`函数,其中 DomainRecordId 不清楚的话暂时不用修改,如:

#Accesskey在开头Setting代码段中修改。

AccessKeyId="MyID"

AccessKeySec="MySecret"

此处的DNS解析服务器为万网,如无特殊需求可以不做修改。

DNSServer="dns9.hichina.com"

主要的参数都在在尾部`ipv4`或`ipv6`的函数调用中修改。

DomainRR 为需要监控的二级域名;

DomainName 为需要监控的域名;

DomainType 是解析类型, A 是IPV4解析,而 AAAA 是IPV6解析,默认不用修改

dev 是群晖目标网卡的名称,可以启用SSH功能后,登录使用 ifconfig 命令查看,要准确填写外网访问的网卡名称;

NslookupDrefix 用于截取域名记录的IP地址时 ipv4 和 ipv6 的区分。在群晖中,不支持 dig 方式查询域名地址,所以我直接用了 nslookup 来查询域名解析地址,而 NslookupDrefix 就是结果的关键字前缀,如果有需要,可以参照实际修改。

DomainRecordId="00000"

DomainRR="www"

DomainName="example.com"

DomainType="A"

dev="ovs_eth0"

NslookupDrefix="Address: "

2. 查看DomainRecordId

如果不清楚 DomainRecordId 的话,修改 ipv4 或 ipv6 函数,在里面调用 describe_record ,如:

ipv6()

{

describe_record

#update_record

}

然后执行这个脚本。如果没问题的话,就能获取到域名的所有解析记录的列表了:

{"PageNumber":1,"TotalCount":1,"PageSize":1,"RequestId":"0000","DomainRecords": {"Record":[{"RR":"www","Status":"ENABLE","Value":"8.8.8.8", "RecordId":"21332133","Type":"A","DomainName":"example.com", "Locked":false,"Line":"default","TTL":"600"},]} }HttpCode:200

上面的结果中, RecordId 为 21332133 。得到结果后再修改 DomainRecordId 为正确的值。

3. 执行脚本

基础配置完成后,改回原入口函数:

ipv6()

{

#describe_record

update_record

}

执行脚本即可,脚本会在本机IP地址和当前域名解析设置不同的时候调用API更新设置。

4. 选择执行函数

如下选择需要执行的函数,我因为没有 IPV4 ,所以只启用了 IPV6

ipv6

#ipv4

5. 其他

有关于日志输出的一些参数配置,直接看脚本就可明了,如果需要查看日志,请在群晖设置计划任务是设置日志的输出路径,详细请参考网上其他教程即可。

设置计划任务

这一步就是在群晖的控制面板上设置相应的计划任务,参考网上的即可,主要目的是以一定的频率执行上诉脚本任务,

展开 收起
10评论

  • 精彩
  • 最新
  • 还是在路由端搞ddns吧,ip改变后可以实时更新,群晖这得靠计划任务了。

    校验提示文案

    提交
    哎, 路由用了老毛子的固件,ipv6的ddns插件不知道是不是我配置问题,说明中支持IPV6,但我应用中不支持,有空再去折腾折腾,话说路由端DDNS是不是访问群晖就得靠端口转发了?。。。回复完才发现,,签到 1666的大佬

    校验提示文案

    提交
    群晖解析也要端口转发吧

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • DSM 6.1.7 用不了,显示字符串签名不符

    校验提示文案

    提交
    我的是6.2.1的,,稳定用几个月了,每次ip变动阿里云都会发邮件,都是正常用,具体是哪里问题呢?截取字符串不对吗?

    校验提示文案

    提交
    不清楚,放弃了。改用docker进行ddns了 [观察]

    校验提示文案

    提交
    收起所有回复
  • @wudision0416 大佬求加一下联系方式,(2746722505)我这边已经购买了一个蜜罐超存,但是想用19×19的板子,有一些细节想请教请教。

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

wudision0416

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
113
扫一下,分享更方便,购买更轻松