
kissgyorgy/cloudflare-dyndns这是一个用Python编写的简单动态DNS脚本,用于更新CloudFlare DNS A/AAAA记录,功能类似于经典的ddclient perl脚本。适用于需要在动态IP环境下保持域名解析记录最新的场景,如家庭网络、动态IP服务器等。
适用于需要动态更新CloudFlare DNS记录的用户,特别是:
bash$ docker run --rm -it kissgyorgy/cloudflare-dyndns:v5.1 --help
使用-6 IPv6选项前,需先启用Docker守护进程的IPv6支持。启用后,可在任何容器、服务或网络中选择使用IPv4、IPv6或两者。
使用本脚本后,它将"接管"您指定域名的记录管理,具体表现为:
重要:不应再通过其他方式手动修改相关A/AAAA记录,否则更改会被脚本覆盖。如您有特殊使用场景需求,请提交issue反馈。
$ cloudflare-dyndns --help Usage: cloudflare-dyndns [OPTIONS] [DOMAINS]... 用于根据本机当前IP地址更新CloudFlare DNS A和/或AAAA记录的命令行脚本。 主域名("@"记录)直接输入"example.com" 子域名格式:"*.example.com"(泛域名)或"sub.example.com"(具体子域名) 域名列表可通过CLOUDFLARE_DOMAINS环境变量设置(域名间用空格分隔,注意引号包裹)。 支持IPv4和IPv6地址,默认仅更新IPv4的A记录,可通过选项调整。 Options: --api-token TEXT CloudFlare API令牌(在个人资料页面/API令牌选项卡创建)。可通过 CLOUDFLARE_API_TOKEN环境变量设置。 [必填] --proxied 是否启用Cloudflare性能和安全加速(代理模式) -4 / -no-4 开启/关闭IPv4检测及A记录更新 [默认: 开启] -6 / -no-6 开启/关闭IPv6检测及AAAA记录更新 [默认: 关闭] --delete-missing 当未找到IP时删除对应DNS记录(IPv4缺失删A记录,IPv6缺失删AAAA记录) --cache-file FILE 缓存文件路径 [默认: /home/walkman/.cache/cloudflare-dyndns/ip.cache] --force 删除缓存并强制更新所有域名 --debug 显示详细日志和异常跟踪信息 --help 显示帮助信息并退出
| 参数 | 环境变量 | 说明 | 必要性 |
|---|---|---|---|
--api-token | CLOUDFLARE_API_TOKEN | CloudFlare API令牌(从个人资料→API令牌创建) | 必填 |
[DOMAINS] | CLOUDFLARE_DOMAINS | 需更新的域名列表(空格分隔,支持泛域名) | 必填 |
| 参数 | 说明 | 默认值 |
|---|---|---|
-4/-no-4 | 启用/禁用IPv4检测及A记录更新 | 启用 |
-6/-no-6 | 启用/禁用IPv6检测及AAAA记录更新 | 禁用 |
--proxied | 启用Cloudflare代理(性能与安全加速) | 禁用 |
--delete-missing | IP缺失时删除对应DNS记录(A/AAAA) | 禁用 |
--cache-file | IP缓存文件路径 | /home/walkman/.cache/cloudflare-dyndns/ip.cache |
--force | 忽略缓存强制更新所有记录 | 禁用 |
--debug | 显示调试日志和异常详情 | 禁用 |
1: 发生未知错误2: IP地址无法确定(IP检测服务错误)3: CloudFlare相关错误(API调用失败、记录获取失败等)v5.1 移除CloudFlare IP追踪服务
该服务已停止工作,替换为ipify.org服务
v5.0 macOS支持
新增从macOS信任存储读取CA证书的能力,无需文件式CA存储
v4.0 IPv6支持
-6选项用于更新AAAA记录--delete-missing选项,可删除缺失IP对应的记录(详情见issue #6)--proxied标志用于启用Cloudflare代理服务v3.0 API令牌强制支持(不兼容变更)
仅支持API令牌(需在My Profile / API Tokens创建:[***]
强烈建议从v2.0升级并使用API令牌(相比全局API密钥,可实现最小权限控制)。
移除--domains选项,保留CLOUDFLARE_DOMAINS环境变量配置方式
v2.0 PyPI发布适配(不兼容变更)
脚本名称变更为cloudflare-dyndns,缓存文件路径更新。
Docker镜像入口点已同步更新,拉取新镜像后可正常使用
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务