
calebcall/docker-cloudflare-ddns这个基于Alpine Linux的小型Docker镜像允许您将免费的CloudFlare DNS服务用作动态DNS提供商(DDNS)。此镜像可在x86_64架构上运行。
该镜像旨在通过CloudFlare的DNS服务实现动态DNS功能,自动将指定域名(或子域名)解析到当前主机的IP地址。适用于需要动态更新DNS记录的场景,如家庭服务器、NAS设备等没有固定公网IP的环境。
shelldocker run \ -e API_KEY=xxxxxxx \ -e ZONE=example.com \ -e SUBDOMAIN=subdomain \ calebcall/docker-cloudflare-ddns
--restart=always - 确保容器在主机重启后自动重启。-e API_KEY - 您的CloudFlare范围API令牌。参见下面的创建Cloudflare API令牌。必填
API_KEY_FILE - 加载CloudFlare范围API令牌的路径(如Docker Secret)。如果同时指定API_KEY_FILE和API_KEY,API_KEY_FILE优先。-e ZONE - 应用DDNS更新的DNS区域。必填
ZONE_FILE - 加载CloudFlare DNS区域的路径(如Docker Secret)。如果同时指定ZONE_FILE和ZONE,ZONE_FILE优先。-e SUBDOMAIN - ZONE下要写入DNS更改的子域名。如果未提供,则使用根区域。
SUBDOMAIN_FILE - 加载CloudFlare DNS子域名的路径(如Docker Secret)。如果同时指定SUBDOMAIN_FILE和SUBDOMAIN,SUBDOMAIN_FILE优先。-e PROXIED - 设置为true使流量通过CloudFlare CDN。默认为false。-e RRTYPE=A - 设置为AAAA以使用IPv6记录代替IPv4记录。默认为A(IPv4)。-e DELETE_ON_STOP - 设置为true使容器停止时删除DNS记录。默认为false。-e INTERFACE=tun0 - 设置为网络接口名称(如tun0)以从该接口获取IP。未提供时使用公网IP。需要--network host运行参数。-e CUSTOM_LOOKUP_CMD="echo '1.1.1.1'" - 设置任意shell命令以从标准输出获取IP。未设置时使用默认IP检测方法。-e DNS_SERVER=10.0.0.2 - 指定要使用的DNS服务器IP地址。默认为1.1.1.1。-e CRON="@daily" - 自定义CRON表达式设置更新频率。默认为每5分钟 - */5 * * * *。-e EMAIL - 使用账户级令牌时的CloudFlare*地址。使用范围API令牌时禁止**设置此变量。要为DNS区域创建CloudFlare API令牌,请访问[***]
cloudflare-ddnsAPI_KEY变量中如果需要多个记录指向同一公网IP,可在CloudFlare中创建CNAME记录指向已配置的DDNS域名。
若要设置IPv6记录,需设置环境变量RRTYPE=AAAA。此外,Docker需启用IPv6支持,或容器需使用主机网络模式(--network host)。
如果偏好使用Docker Compose:
ymlversion: '2' services: cloudflare-ddns: image: calebcall/docker-cloudflare-ddns:latest restart: always environment: - API_KEY=xxxxxxx # 替换为您的CloudFlare API令牌 - ZONE=example.com # 替换为您的DNS区域(如example.com) - SUBDOMAIN=subdomain # 可选,替换为子域名(如home) - PROXIED=false # 是否启用CloudFlare代理,true/false
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务