基于阿里云域名的群晖 DDNS 配置
创作立场声明:经验分享,over
前言
本文内容仅适用于群晖,若应用在其他地方,请自行修改。
本文是基于阿里云的域名解析实现的,使用群晖的 计划任务 + sh 脚本来实现DDNS功能,理论上支持 IPV4 和 IPV6 ,因为个人条件有限,未拥有公网的 IPV4 的地址,所以未针对 IPV4 进行测试。若有问题,也可以留言一起讨论。
目前网络上的基于 sh 脚本的方式实现 DDNS 的代码在我的环境中都已失效,怀疑是群晖版本问题。不想用 docker 或其他方式实现DDNS功能(嫌麻烦),所以我用三脚猫的水平,基于jwping/AliDDNS 的代码完成了我的目的。目前在我机器上正常工作。
环境
硬件:七彩虹 C.J3160M-K 全固态版 V21 主板,板载了 intel 的 J3160 处理器
系统:黑群晖 DSM 6.2.3 版本
代码配置
完整代码请查看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. 其他
有关于日志输出的一些参数配置,直接看脚本就可明了,如果需要查看日志,请在群晖设置计划任务是设置日志的输出路径,详细请参考网上其他教程即可。
设置计划任务
这一步就是在群晖的控制面板上设置相应的计划任务,参考网上的即可,主要目的是以一定的频率执行上诉脚本任务,




VAY冬冬
校验提示文案
-没名字-
校验提示文案
盐和生蚝更配哦
校验提示文案
盐和生蚝更配哦
校验提示文案
-没名字-
校验提示文案
VAY冬冬
校验提示文案