超小极简DDNS脚本 适配CloudFlare的DNS令牌以实现DDNS,这个脚本去除注释的话不到50行,自用一个月非常稳定。
来源:https://github.com/JasonL111/DDNS_Lite?tab=readme-ov-file
DDNS_Lite
这是一个基于 Bash + curl + jq 实现的 Cloudflare 动态 DNS(DDNS)更新脚本,可自动获取本机公网 IP,并更新到 Cloudflare 上的 A 记录,实现动态公网 IP 的自动同步。
📌 功能说明
- 自动获取本机公网 IPv4 地址;
- 比较是否与 Cloudflare DNS 中记录一致;
- 如有变化,则自动更新记录;
- 支持日志记录功能,新日志添加在头部,倒叙添加,方便追踪操作历史。
🔧使用方法
- 安装依赖
sudo apt install curl jq
- 编辑 DDNS.sh 文件,填入你的 Cloudflare DNS API信息:
ZONE_NAME="yourdomain.com" # 一级域名
RECORD_NAME="sub.yourdomain.com" # 二级域名(完整DNS记录)
CF_API_TOKEN="your_cloudflare_api_token" # API 令牌
- 赋予执行权限
chmod +x DDNS.sh
- 运行
./DDNS.sh
⏰crontab自动运行
- 打开任务列表
crontab -e
- 添加任务(需要替换为真实目录)
15 * * * * $HOME/bin/DDNS/DDNS.sh
这是个每15分钟跑一次的例子
另外用dns.he.net搞ddns又方便又好用
就一句命令
curl -6 "https://域名:密钥@dyn.dns.he.net/nic/update?hostname=域名"
或者
curl "https://域名:密钥@dyn.dns.he.net/nic/update?hostname=域名"
这么简单的一句代码,什么系统都能简单地定时运行,就可以实现ddns了。
最重要的是,每个子域名可以分别生成一个不同的密钥,分开控制,很安全。
debian等linux系统的设置方法:
安装curl:
sudo apt install curl
设置计划任务:
crontab -e
填写:
*/5 * * * * curl "https://域名:密钥@dyn.dns.he.net/nic/update?hostname=域名"
openwrt的设置方法:
登录后台,系统 -> 软件包,安装软件curl。
系统 -> 计划任务,填写:
*/5 * * * * curl "https://域名:密钥@dyn.dns.he.net/nic/update?hostname=域名"
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END