基于阿里云官方SDK的动态域名解析脚本,自动获取公网IP并更新阿里云DNS解析记录。 ## 功能特点 - 支持 IPv4 和 IPv6 解析 - 多接口自动切换,提高IP获取成功率 - 支持多个子域名前缀(如 `*`, `www`, `mc`) - 获取失败自动重试机制 - 时间戳日志,方便定时任务排查 - 私有IP过滤,避免错误更新 ## 环境要求 - Python >= 3.7 - 阿里云账号及AccessKey ## 安装步骤 ### 1. 安装依赖 ```bash pip install alibabacloud_alidns20150109==4.4.1 alibabacloud_tea_openapi alibabacloud_tea_util ``` ### 2. 获取阿里云AccessKey 1. 登录阿里云控制台 2. 点击右上角头像 → **AccessKey管理** 3. 创建AccessKey,记录 `AccessKey ID` 和 `AccessKey Secret` ### 3. 配置脚本 github地址:[https://github.com/tianlingzi/aliyunddns](https://github.com/tianlingzi/aliyunddns) 本站下载:[阿里云云解析脚本](https://www.tianlingzi.top/admin/extending.php?panel=TypechoAttachmentStore%2Fdownload.php&id=att_11) 编辑 `aliyunddns.py`,修改以下配置: ```python # 必填配置 access_key_id = "你的AccessKey ID" access_key_secret = "你的AccessKey Secret" domain = "你的主域名" # 如:example.com # IPv4配置 ipv4_flag = 1 # 1=开启,0=关闭 name1_ipv4 = "*,www,@" # 多个前缀用逗号分隔 # IPv6配置 ipv6_flag = 1 # 1=开启,0=关闭 name1_ipv6 = "*,www,@" # 多个前缀用逗号分隔 ``` ## 参数说明 | 参数 | 说明 | 示例 | | ------------------- | ------------------------------ | ------------------------- | | `access_key_id` | 阿里云AccessKey ID | `LTxxxxxxxxxxxx` | | `access_key_secret` | 阿里云AccessKey Secret | `8xZxxxxxxxxxxxxxxxxxxxx` | | `domain` | 主域名 | `example.com` | | `ipv4_flag` | 是否开启IPv4解析 | `1`=开启,`0`=关闭 | | `name1_ipv4` | IPv4子域名前缀,多个用逗号分隔 | `"*"` 或 `"*,www,@"` | | `ipv4_endpoints` | IPv4公网IP获取接口列表 | 可自行添加或替换 | | `ipv4_repetition` | IPv4获取失败后重试次数 | `0`=不重试 | | `ipv6_flag` | 是否开启IPv6解析 | `1`=开启,`0`=关闭 | | `name1_ipv6` | IPv6子域名前缀,多个用逗号分隔 | `"*"` 或 `"*,www,@"` | | `ipv6_endpoints` | IPv6公网IP获取接口列表 | 可自行添加或替换 | | `ipv6_repetition` | IPv6获取失败后重试次数 | `0`=不重试 | ## 使用方法 ### 直接运行 ```bash python3 aliyunddns.py ``` ### 设置定时任务(推荐) 在Linux系统中,可以通过crontab设置定时任务,自动更新DNS解析: ```bash # 编辑crontab crontab -e # 添加以下内容,每5分钟执行一次 */5 * * * * /usr/bin/python3 aliyunddns.py >> /var/log/ddns.log 2>&1 ``` ## 输出示例 ``` [2026-06-26 10:30:00] 开始解析主域名:example.com [2026-06-26 10:30:00] 进行ipv4解析 [2026-06-26 10:30:01] 获取ipv4成功:192.168.1.100 [2026-06-26 10:30:01] 正在解析域名:*.example.com [2026-06-26 10:30:02] IPv4地址没变 [2026-06-26 10:30:02] 进行ipv6解析 [2026-06-26 10:30:03] 获取ipv6成功:2409:8a5c:67e:2660::1 [2026-06-26 10:30:03] 正在解析域名:*.example.com [2026-06-26 10:30:04] 修改域名解析成功 [2026-06-26 10:30:04] 完成 ``` ## 注意事项 1. **安全提示**:请妥善保管你的AccessKey,不要泄露给他人 2. **域名要求**:确保域名已添加到阿里云云解析DNS控制台 3. **IPv6支持**:确保你的网络环境支持IPv6,否则IPv6解析会失败 4. **权限设置**:AccessKey需要具有云解析DNS的读写权限 5. **日志查看**:建议开启定时任务日志,方便排查问题 ## 常见问题 ### Q: 运行时提示"access_key_id或access_key_secret为空" A: 请检查脚本中 `access_key_id` 和 `access_key_secret` 是否填写正确。 ### Q: 获取IPv6失败 A: 请检查网络环境是否支持IPv6,或更换IPv6获取接口。 ### Q: 修改域名解析失败 A: 请检查AccessKey权限是否足够,或域名是否已添加到阿里云解析控制台。 Loading... 基于阿里云官方SDK的动态域名解析脚本,自动获取公网IP并更新阿里云DNS解析记录。 ## 功能特点 - 支持 IPv4 和 IPv6 解析 - 多接口自动切换,提高IP获取成功率 - 支持多个子域名前缀(如 `*`, `www`, `mc`) - 获取失败自动重试机制 - 时间戳日志,方便定时任务排查 - 私有IP过滤,避免错误更新 ## 环境要求 - Python >= 3.7 - 阿里云账号及AccessKey ## 安装步骤 ### 1. 安装依赖 ```bash pip install alibabacloud_alidns20150109==4.4.1 alibabacloud_tea_openapi alibabacloud_tea_util ``` ### 2. 获取阿里云AccessKey 1. 登录阿里云控制台 2. 点击右上角头像 → **AccessKey管理** 3. 创建AccessKey,记录 `AccessKey ID` 和 `AccessKey Secret` ### 3. 配置脚本 github地址:[https://github.com/tianlingzi/aliyunddns](https://github.com/tianlingzi/aliyunddns) 本站下载:[阿里云云解析脚本](https://www.tianlingzi.top/admin/extending.php?panel=TypechoAttachmentStore%2Fdownload.php&id=att_11) 编辑 `aliyunddns.py`,修改以下配置: ```python # 必填配置 access_key_id = "你的AccessKey ID" access_key_secret = "你的AccessKey Secret" domain = "你的主域名" # 如:example.com # IPv4配置 ipv4_flag = 1 # 1=开启,0=关闭 name1_ipv4 = "*,www,@" # 多个前缀用逗号分隔 # IPv6配置 ipv6_flag = 1 # 1=开启,0=关闭 name1_ipv6 = "*,www,@" # 多个前缀用逗号分隔 ``` ## 参数说明 | 参数 | 说明 | 示例 | | ------------------- | ------------------------------ | ------------------------- | | `access_key_id` | 阿里云AccessKey ID | `LTxxxxxxxxxxxx` | | `access_key_secret` | 阿里云AccessKey Secret | `8xZxxxxxxxxxxxxxxxxxxxx` | | `domain` | 主域名 | `example.com` | | `ipv4_flag` | 是否开启IPv4解析 | `1`=开启,`0`=关闭 | | `name1_ipv4` | IPv4子域名前缀,多个用逗号分隔 | `"*"` 或 `"*,www,@"` | | `ipv4_endpoints` | IPv4公网IP获取接口列表 | 可自行添加或替换 | | `ipv4_repetition` | IPv4获取失败后重试次数 | `0`=不重试 | | `ipv6_flag` | 是否开启IPv6解析 | `1`=开启,`0`=关闭 | | `name1_ipv6` | IPv6子域名前缀,多个用逗号分隔 | `"*"` 或 `"*,www,@"` | | `ipv6_endpoints` | IPv6公网IP获取接口列表 | 可自行添加或替换 | | `ipv6_repetition` | IPv6获取失败后重试次数 | `0`=不重试 | ## 使用方法 ### 直接运行 ```bash python3 aliyunddns.py ``` ### 设置定时任务(推荐) 在Linux系统中,可以通过crontab设置定时任务,自动更新DNS解析: ```bash # 编辑crontab crontab -e # 添加以下内容,每5分钟执行一次 */5 * * * * /usr/bin/python3 aliyunddns.py >> /var/log/ddns.log 2>&1 ``` ## 输出示例 ``` [2026-06-26 10:30:00] 开始解析主域名:example.com [2026-06-26 10:30:00] 进行ipv4解析 [2026-06-26 10:30:01] 获取ipv4成功:192.168.1.100 [2026-06-26 10:30:01] 正在解析域名:*.example.com [2026-06-26 10:30:02] IPv4地址没变 [2026-06-26 10:30:02] 进行ipv6解析 [2026-06-26 10:30:03] 获取ipv6成功:2409:8a5c:67e:2660::1 [2026-06-26 10:30:03] 正在解析域名:*.example.com [2026-06-26 10:30:04] 修改域名解析成功 [2026-06-26 10:30:04] 完成 ``` ## 注意事项 1. **安全提示**:请妥善保管你的AccessKey,不要泄露给他人 2. **域名要求**:确保域名已添加到阿里云云解析DNS控制台 3. **IPv6支持**:确保你的网络环境支持IPv6,否则IPv6解析会失败 4. **权限设置**:AccessKey需要具有云解析DNS的读写权限 5. **日志查看**:建议开启定时任务日志,方便排查问题 ## 常见问题 ### Q: 运行时提示"access_key_id或access_key_secret为空" A: 请检查脚本中 `access_key_id` 和 `access_key_secret` 是否填写正确。 ### Q: 获取IPv6失败 A: 请检查网络环境是否支持IPv6,或更换IPv6获取接口。 ### Q: 修改域名解析失败 A: 请检查AccessKey权限是否足够,或域名是否已添加到阿里云解析控制台。 最后修改:2026 年 06 月 26 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏