阿里云DDNS动态域名解析自动化脚本
本文最后更新于 2023年9月18日 上午
阿里云DDNS动态域名解析自动化脚本
此脚本将指定的域名和当前设备的公网 IP 地址一起提交给域名解析服务器,使外网设备可以通过域名访问当前设备。
脚本同时支持 IPv4 和 IPv6。没有公网 IPv4 地址,运营商已支持 IPv6,以下就以 IPv6 为例。
1 测试是否已接入 IPv6 网络
IPv6 测试,成功接入 IPv6 网络显示如下:
如果没接入 IPv6 网络,参考中国电信IPv6地址获取教程。
2 准备域名
去阿里云万网购买一个域名。需要实名认证,购买域名时要填真实信息。
域名购买成功后,登录阿里云,进入控制台,RAM 访问控制。用户 ➡️ 创建用户:
图中勾选了编程访问,会生成 AccessKey ID 和 AccessKey Secret:
为新加的用户添加权限 AliyunDNSFullAccess:
3 下载脚本
直接在用脚本的设备运行
1 |
|
4 修改配置
修改配置文件 config.ini
1 |
|
例如:
1 |
|
上面配置文件的含义是将域名 linux4.example.com
解析到本机的 IPV4
地址以及域名 linux6.example.com
解析到本机的 IPV6
地址。
5 手动执行
1 |
|
6 自动运行
Windows
若配置文件为脚本所在目录的 config.ini,双击 createSchTask.vbs,创建计划任务。
其他情况,将配置文件拖放到 createSchTask.vbs 上,创建计划任务。Linux
创建定时任务
1 |
|
最后边添加如下内容:
1 |
|
命令中的路径都为绝对路径。如上是每 5 分钟执行一次。
- 华硕路由器梅林
- 安装 Entware,然后安装 bash,gawk。
Opkg update && opkg install bash gawk
- 复制 aliddns. Sh 到 /jffs/scripts/ 路径下,改名为 ddns-start。
Cp aliddns 6/aliddns. Sh /jffs/scripts/ddns-start
- 复制 config. Ini 到 /jffs/scripts/ 路径下,修改配置。
cp aliddns6/config.ini /jffs/scripts/
- 安装 Entware,然后安装 bash,gawk。
7 问题解决
- 脚本报错,检查终端
用命令whereis bash
或echo $0
确认系统中有没有 bash,没有则安装上。
- 脚本运行报错,未获取到阿里云查询结果
原因:跨系统传脚本文件会存在换行符不同导致运行报错的问题。
解决:只在运行脚本的地方编辑脚本。
- crontab 设置了计划任务,”没有” 自动执行
原因: crontab 没有加载 PATH 全部路径,脚本里的命令找不到。
解决:在 kk.txt 第一行加上下面这句
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
- 手动删除解析记录
主域名是 xx.com,删除 test.xx.com 的解析记录./aliddns.sh -f conf.txt -d test