记录生活
分享美好

通过Cloudflare创建动态DDNS域名解析教程

📖 前言:为什么需要 DDNS?

很多朋友家里的宽带或购买的某些 VPS(如 NAT VPS),其公网 IP 地址是不是固定的,每隔一段时间或重启路由器后就会变化。 这就导致了一个问题:你无法通过一个固定的 IP 远程访问家里的 NAS、服务器或摄像头。

DDNS (Dynamic DNS) 就是为了解决这个问题而生的。它的工作原理很简单:

有一个脚本每隔几分钟检查一下你当前的公网 IP,如果发现 IP 变了,就自动调用 DNS 服务商(比如 Cloudflare)的 API,把你域名的解析记录更新为最新的 IP。

今天,心海君就手把手教大家,如何利用强大的 Cloudflare 实现这一功能。

🛠️ 前提条件

  1. 你拥有一个属于自己的域名(例如:lanxh.com)。
  2. 该域名的 DNS 解析已经托管到了 Cloudflare
  3. 你有一台需要进行 DDNS 解析的 Linux 服务器或设备(可以是 VPS,也可以是家里的树莓派、OpenWrt 路由器)。

🚀 详细操作步骤

第一步:获取 Cloudflare Global API Key

这是一个最高权限的密钥,请务必妥善保管,不要泄露给他人!

输入你的登录密码和验证码,复制显示出来的那串长长的密钥,保存备用。 (图示:Cloudflare API 页面截图,建议站长自行补充一张带红框的图)

登录 Cloudflare 控制台。

点击右上角的头像 -> “我的个人资料 (My Profile)” -> “API 令牌 (API Tokens)”

找到 “Global API Key”,点击右侧的 “查看 (View)”

第二步:预先设置 DNS 解析记录

在运行脚本前,我们需要先在 Cloudflare 上创建一个“占位”的解析记录。

点击保存。

进入你的域名管理页面,点击左侧的 “DNS”

点击 “添加记录 (Add record)”

类型: 选择 A

名称 (Name): 填写你想使用的二级域名,例如 ddns(那么完整域名就是 ddns.yourdomain.com)。

IPv4 地址: 随便填一个 IP,比如 1.1.1.1

代理状态 (Proxy status): 重要!请务必关闭小黄云(使其变成灰色,即“仅 DNS”模式)。

第三步:下载并配置 DDNS 脚本

连接到你的 Linux 服务器(SSH),依次执行以下命令。

1. 下载脚本:

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

2. 赋予执行权限:

chmod +x cf-v4-ddns.sh

3. 编辑脚本配置: 使用你熟悉的编辑器打开脚本,例如 nanovi

nano cf-v4-ddns.sh

找到脚本开头的以下几行,填入你的信息:

# 你的 Global API Key (第一步获取的)
CFKEY=这里填写你那串长长的API密钥

# 你的 Cloudflare 登录邮箱
CFUSER=user@example.com

# 你的主域名 (例如 lanxh.com)
CFZONE_NAME=example.com

# 你要解析的完整二级域名 (第二步创建的那个)
CFRECORD_NAME=ddns.example.com

编辑完成后,按 Ctrl+O 保存,按 Ctrl+X 退出 (如果是 nano 编辑器)。

第四步:测试运行

配置完成后,我们可以手动运行一次脚本,看看是否生效。

./cf-v4-ddns.sh

观察结果:

  • 如果终端输出类似 Update success! 或显示了当前的公网 IP,说明脚本运行成功。
  • 回到 Cloudflare 的 DNS 页面刷新一下,看看刚才设置的 ddns 记录的 IP 地址是不是已经自动变成了你服务器当前的公网 IP。如果是,恭喜你,成功了!

第五步:设置全自动定时任务 (Crontab)

为了让脚本全自动运行,我们需要设置一个定时任务,比如每分钟检查一次。

  1. 输入命令编辑定时任务:crontab -e (如果是第一次运行,可能会让你选择编辑器,输入对应的数字选择 nanovim 即可)
  2. 在文件末尾添加以下一行内容:*/1 * * * * /root/cf-v4-ddns.sh >/dev/null 2>&1 注意:请确保脚本路径 /root/cf-v4-ddns.sh 是正确的,如果你下载到了其他目录请自行修改。
  3. 保存并退出。系统会提示 crontab: installing new crontab,说明定时任务创建成功。

❓ 常见问题 (FAQ)

Q: 为什么 Cloudflare 上的 IP 没有更新? A:

  1. 检查脚本里的 API Key、邮箱、域名是否填写正确,有没有多余的空格。
  2. 确保第二步中添加 DNS 记录时,小黄云是关闭状态
  3. 手动运行脚本 ./cf-v4-ddns.sh,看看有没有报错信息。

Q: 这个脚本支持 IPv6 吗? A: 本教程使用的脚本主要针对 IPv4 (A 记录)。如果你需要 IPv6 (AAAA 记录) 的 DDNS,可以使用其他支持 IPv6 的脚本或工具(如 ddns-go)。

Q: 为什么我设置了定时任务但不执行? A:

  1. 确保 crond 服务是启动的 (systemctl status cronservice cron status)。
  2. 检查脚本本身是否有可执行权限 (chmod +x).
  3. 在 crontab 中使用绝对路径(如 /root/cf-v4-ddns.sh)而不是相对路径。

📢 站长推荐

搞定了 DDNS,是不是想折腾点更好玩的? 不妨试试本站自用的 [深蓝云加速],全线 IEPL 专线,不仅能加速你的科学上网体验,还能配合 DDNS 更好地远程管理你的海外服务器。 👉 [点击直达官网注册试用]

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《通过Cloudflare创建动态DDNS域名解析教程》
文章链接:https://www.lanxh.com/2971.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。部分内容来源于网络如有版权问题请联系删除:admin@lanxh.com

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册