cloudflare-dns

🌐 Cloudflare DNS 自动化管理专家

基于 Cloudflare 官方 API 的 DNS 自动化管理工具,支持 DDNS 与多记录类型操作,适合快速管理域名解析。

收藏
4.7k
安装
1.6k
版本
v1.0.0
CLS 安全性认证2026-05-21
点击查看完整报告 >

使用说明

Cloudflare DNS 管理技能是一款基于 Bash 脚本的命令行工具,通过调用 Cloudflare 官方 API 实现域名解析记录的自动化管理。用户可通过简洁的命令完成 DNS 记录的增删改查、批量操作以及动态 DNS(DDNS)更新,支持 A、AAAA、CNAME、TXT、MX 等主流记录类型,并可一键开启 Cloudflare 代理(橙色云)实现 CDN 加速与源站 IP 隐藏。

该技能的核心优势在于其高效的命令行交互设计与官方 API 的直接对接。通过封装 cf-dns.sh 脚本,用户无需记忆复杂的 API 参数即可完成各类 DNS 操作,特别适合需要频繁调整解析记录或部署家庭服务器动态 IP 更新的场景。脚本内置完善的输入验证机制,使用 set -euo pipefail 确保执行安全,并通过 JSON 格式输出便于与 jq 等工具链集成。

然而,该技能也存在一定局限性。首先,DDNS 功能依赖第三方公网 IP 查询服务(如 api.ipify.org、ifconfig.me),这些服务的可用性与稳定性不受控制,可能在关键更新时刻失效。其次,作为 T3 来源的个人开发者项目,缺乏官方组织的长期维护承诺与审计日志功能,不适合对合规性要求极高的企业环境。此外,脚本本身不具备操作审计与变更历史追踪能力。

该技能主要面向个人开发者、中小企业运维人员以及家庭服务器爱好者。对于需要快速搭建 DDNS 服务、批量管理少量域名或进行开发测试环境 DNS 配置的用户而言,这是一个轻量且实用的解决方案。对于需要高度安全隔离、详细审计日志或 SLA 保障的生产环境,建议使用官方 SDK 或企业级管理工具。

使用过程中需注意以下风险:API Token 的泄露可能导致域名解析被恶意篡改,建议严格遵循最小权限原则并妥善保管凭证;第三方 IP 服务的不可控性可能影响 DDNS 稳定性,建议生产环境配置备用方案;所有 DNS 变更操作(特别是删除)具有即时生效特性,误操作可能导致服务中断,建议在执行前确认参数准确性。

安全解读

核心用法

cloudflare-dns 是一个轻量级 Bash 脚本工具,封装了 Cloudflare API v4 的全部 DNS 管理功能。用户通过环境变量 CF_API_TOKEN 和可选的 CF_ZONE_ID 完成认证,即可执行域名记录的增删改查及动态 DNS(DDNS)更新。

主要能力包括:

  • 记录管理:创建、更新、删除、查询 A/AAAA/CNAME/TXT/MX/SRV/NS 等标准记录类型,支持设置 TTL、代理状态(--proxied)和 MX 优先级
  • Zone 查询:自动枚举账户下的所有 Zone 或按域名定位 Zone ID
  • 动态 DNS:内置公网 IP 检测(调用 ipify.org/ifconfig.me),自动更新 A 记录指向当前 IP,适合家庭服务器场景
  • 输出格式:统一返回 JSON,便于与 jq 等工具链集成

使用模式示例:

# 快速添加子域名并开启 Cloudflare 代理
cf-dns.sh create <zone_id> --type A --name api --content 1.2.3.4 --proxied

# 配置邮件服务(MX + SPF)
cf-dns.sh create <zone_id> --type MX --name @ --content mail.example.com --priority 10
cf-dns.sh create <zone_id> --type TXT --name @ --content "v=spf1 include:_spf.google.com ~all"

# DDNS 定时任务(cron)
cf-dns.sh ddns --domain example.com --name home

显著优点

1. 零依赖架构:纯 Bash 实现,仅依赖系统标准工具(curl、jq),无需 Python/Node.js 运行时,部署极轻量
2. 安全合规:通过 CLS-Certify 六维深度检测,静态分析 90 分、依赖审计 95 分,无高危风险;API 调用全 HTTPS 加密,无硬编码凭证

3. 功能完整:覆盖 Cloudflare DNS 管理的全生命周期,支持 @ 根域、自动 Zone ID 探测、代理状态切换等企业级需求

4. 运维友好:JSON 输出便于自动化集成,DDNS 内置多 IP 源容错,命令语义直观接近 kubectl 风格

潜在局限

1. 外部依赖风险:DDNS 功能依赖 ipify.org 和 ifconfig.me 获取公网 IP,在企业内网或严格出站策略环境中可能失效(可通过环境变量自定义或离线模式缓解)
2. T3 来源可信度:由个人开发者(pushp1997)维护的社区项目,非 Cloudflare 官方或顶级开源基金会背书,需关注上游更新连续性

3. Bash 可移植性:部分高级特性(如关联数组)在旧版 Bash/macOS 默认 shell 中可能存在兼容性问题

4. 无原生重试机制:当前 curl 调用未配置超时和指数退避,网络抖动时可能长时间阻塞

适合人群

  • 需要快速管理 Cloudflare DNS 的 DevOps/SRE 工程师
  • 家庭服务器用户寻求轻量级 DDNS 方案
  • 追求极简依赖、避免容器/Python 运行时开销的运维场景
  • 需要将 DNS 操作集成到 CI/CD 或自动化脚本的开发者

常规风险

  • 凭证泄露CF_API_TOKEN 通过环境变量传递,需确保 shell 历史、进程列表(ps e)不被未授权访问;建议配置最小权限 Token(仅 Zone:Read + DNS:Edit
  • API 限流:Cloudflare API 存在速率限制,高频批量操作需自行实现退避逻辑
  • DDNS 一致性:公网 IP 检测服务与 Cloudflare 边缘节点之间可能存在短暂不一致,极端场景下可能导致 DNS 缓存波动

cloudflare-dns 内容

scripts文件夹
手动下载zip · 4.1 kB
cf-dns.shtext/x-shellscript
请选择文件