使用华為雲DNS拉平CNAME記錄(CDN場景)
接上一篇文章使用 DNSPod 拉平 CNAME 記錄(CDN 場景)呢篇文章將介紹如何使用華為雲 DNS 拉平 CNAME 記錄(CDN 場景)。
操作場景
本文將指導您如何使用華為雲 DNS 的 API 實現拉平 CNAME 記錄,以解決相關記錄衝突嘅問題。
方法說明
唔再重複說明咗,如有興趣請看使用 DNSPod 拉平 CNAME 記錄(CDN 場景)
前提條件
- 域名解析託管在華為雲 DNS
項目地址
https://github.com/KincaidYang/CNAMEFlattening
操作步驟
获取腳本
Flame 版本
該版本適用於騰訊雲 CDN、華為雲 CDN
IPv4 腳本:
1 | wget https://dl.r2wind.com/script/CNAMEFlattening/HuaweiCloud/Flame/Huaweicloud-Flame-IPv4.py |
IPv6 腳本:
1 | wget https://dl.r2wind.com/script/CNAMEFlattening/HuaweiCloud/Flame/Huaweicloud-Flame-IPv6.py |
Frost 版本
該版本適用於騰訊雲 EdgeOne、阿里雲 CDN、天翼雲 CDN
IPv4 腳本:
1 | wget https://dl.r2wind.com/script/CNAMEFlattening/HuaweiCloud/Frost/Huaweicloud-Frost-IPv4.py |
IPv6 腳本:
1 | wget https://dl.r2wind.com/script/CNAMEFlattening/HuaweiCloud/Frost/Huaweicloud-Frost-IPv6.py |
#### 使用 git clone 命令下載腳本
使用 git clone 命令:
1 | git clone https://github.com/KincaidYang/CNAMEFlattening.git |
配置變量
打開腳本,根據腳本提示修改如下變量。
1 | # 配置參數 |
本站示例配置
1 | # 配置参数 |
说明:
若觉得下方用于 ECS 协议的 IP 子网存在问题,可自行修改。
安装依赖
脚本使用 Python3(一般镜像都会预装 Python3)、requests 库、华为云DNS SDK 若未安装请执行以下命令安装。
1 | # CentOS/RedHat: |
说明:
喺某啲系统下可能要將 pip3 替換做 pip。
导入记录
使用前请您前往华为云 DNS 控制台添加或使用下方模板导入记录,否则脚本无咩正常运行。
下载记录模板
IPv4模板:https://dl.r2wind.com/template/HuaweicloudDNS-IPv4.xlsx
IPv6模板:https://dl.r2wind.com/template/HuaweicloudDNS-IPv6.xlsx
说明:
导入之前请自己改吓模板裏面嘅域名,模板裏面嘅域名系域名前缀,似’www’噉嘅,根域名请留空。
导入之前请自己改吓模板裏面嘅记录值为当前 CDN 节点 IP,唔系嘅话会影响域名正常访问。(节点 IP 可以通过nslookup查询CDN CNAME地址获取)
若系要导入嘅记录之前喺控制台加过,请删咗原有记录之后再导入。
导入记录
- 登入华为云 DNS 控制台。
- 点击对应嘅域名
- 切换到批量导入/导出选项卡,点击批量导入上传模板
- 等导入完成,留意吓导入结果,如果有导入失败嘅记录,睇吓嘅咩原因修正之后手动加记录,唔好重复导入。
调试脚本
请先喺本地使用编辑器(好似VScode)调试脚本,如果调试成功嘅话就可以继续部署。
如果脚本正常运行,您会睇到类似下面嘅输出:
部署脚本
部署运行
脚本使嘅系 cron 定时运行,所以您需要安装 cron。
1 | # CentOS/RHEL |
安装完成之后,你需要编辑crontab文件,加入定时任务。
1 | crontab -e |
喺 crontab 文件入面加入如下內容:
1 | */5 * * * * python3 /root/HuaweicloudDNSCDN-IPv4.py |
说明:
呢个配置每5分钟运行一次,你可以按自己需要去改。
请将/root/HuaweicloudDNSCDN-IPv4.py 替换成你个脚本路径。
如果你用緊IPv6个脚本,请将上述内容替换成 */5 * * * * python3 /root/HuaweicloudDNSCDN-IPv6.py
验證效果
你可以喺華為雲 DNS 控制台檢查對應域名嘅相關記錄,若記錄值已經更新為 CDN 節點 IP,咁就表示腳本運行成功。
問題反饋
若您喺使用過程中遇到任何問題,歡迎您提交 Issue。