操作系统

基于CloudFlare的DDNS解析 | 进阶版

hadeschan · 5月27日 · 2023年 · · · · · · · · · · 本文共7872个字 · 预计阅读27分钟 66次已读

本文示例演示如何使用 Cloudflare 构建 DDNS(动态 DNS):从获取 Global API Key、创建用于解析的二级域名,到部署 DDNS 脚本与 crontab 定时任务。适用于常见 Linux 服务器或 VPS 环境。

前提条件

要自建 DDNS 服务,需具备可用域名且已接入 Cloudflare(即 DNS 已切到 CF 提供的 NS)。也可选用阿里云解析、DNSPod 等服务;本文以 Cloudflare 为例。

1. 获取 CFKEY

打开:https://dash.cloudflare.com/profile ,在页面下方找到 Global API Key,点击 View 查看并妥善保存。

2. 设置用于 DDNS 解析的二级域名

在 Cloudflare DNS 中新建一条 A 记录(如:ddns.yourdomain.com),暂时指向 1.1.1.1(或任意占位 IP),用于稍后验证 DDNS 是否生效。

3. 下载 DDNS 脚本

yum install -y wget && wget -N --no-check-certificate https://raw.githubusercontent.com/yulewang/cloudflare-api-v4-ddns/master/cf-v4-ddns.sh

4. 修改 DDNS 脚本并填写相关信息

可使用 nano/vi/vim 在线编辑,或下载到本地修改后再上传覆盖。示例:

vi cf-v4-ddns.sh

进入编辑模式(按 i),将以下变量填写为你的实际信息:

# API key, see https://www.cloudflare.com/a/account/my-account
# 这里填写上一步获取的 CFKEY
CFKEY=

# 输入用于 DDNS 的根域名,例如 example.com
CFZONE=

# 登录 CF 的邮箱(Username)
CFUSER=

# DDNS 使用的二级域名(需与上文一致),如 ddns.yourdomain.com
CFHOST=

填写完成后按 Esc 退出编辑模式,输入 :wq 保存并退出。

5. 脚本授权并执行

chmod +x cf-v4-ddns.sh
./cf-v4-ddns.sh

若信息填写正确,输出会显示当前服务器公网 IP。登录 Cloudflare 的 DNS 页面检查,先前设置为 1.1.1.1 的记录应已更新为你的公网 IP。

6. 设置定时任务

编辑 crontab 定时执行脚本(每 2 分钟一次):

crontab -e
# 在文件中添加:
*/2 * * * * /root/cf-v4-ddns.sh >/dev/null 2>&1

如需记录日志(写入 /var/log/cf-ddns.log):

*/2 * * * * /root/cf-v4-ddns.sh >> /var/log/cf-ddns.log 2>&1
0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!