39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
# Cloudflare DDNS 更新脚本
|
||
|
||
每 5 分钟自动检测本机公网 IPv4/IPv6,变化时同步更新 Cloudflare DNS 记录(A / AAAA),支持多域名、泛解析,可选 CDN 代理。
|
||
|
||
## 特点
|
||
|
||
- 一个 Token 管理多个域名,自动识别所属 Zone
|
||
- 公网 IP 只检测一次,多条记录复用
|
||
- IP 无变化时跳过,节省 API 调用
|
||
- 仅发布公网 IPv6(`2000::/3`),自动过滤 ULA 内网地址(`fc00::/7`)
|
||
- 获取不到 IPv6 时回退到外部检测接口
|
||
|
||
## 使用方法
|
||
|
||
1. 在 Cloudflare 后台创建受限 Token:My Profile → API Tokens,权限 `Zone → DNS → Edit`
|
||
2. 将 Token 填入脚本顶部 `API_TOKEN`(或改用 `API_EMAIL` + `API_KEY` 全局密钥方式)
|
||
3. 修改 `RECORDS` 列表,每条一行,格式 `域名:类型(:proxied)`
|
||
- 类型:`A` = IPv4,`AAAA` = IPv6
|
||
- `proxied`:可选,`true` 走 CDN 代理,`false` 纯解析(默认)
|
||
4. 安装到 cron,每 5 分钟执行一次:
|
||
|
||
```cron
|
||
*/5 * * * * root /usr/local/bin/cloudflare-ddns.sh >> /var/log/cloudflare-ddns.log 2>&1
|
||
```
|
||
|
||
## 配置示例
|
||
|
||
```bash
|
||
API_TOKEN="你的_Cloudflare_API_Token"
|
||
|
||
RECORDS=(
|
||
"example.com:A"
|
||
"example.com:AAAA"
|
||
"*.example.com:A:true"
|
||
)
|
||
```
|
||
|
||
> 注意:本仓库已脱敏,`API_TOKEN` / `API_EMAIL` / `API_KEY` 均为空占位,不含任何真实密钥。请勿将真实密钥提交到公开仓库。
|