cloudflare-manager

🌐 安全高效的基础设施管理助手

基于 Cloudflare 官方 API 的 DNS 与 Tunnel 管理工具,支持安全地暴露本地服务、管理域名解析,适合开发者和运维人员快速搭建内网穿透与自动化 DNS 工作流。

收藏
8.4k
安装
2.5k
版本
v1.1.0
CLS 安全性认证2026-05-09
点击查看完整报告 >

使用说明

核心用法

Cloudflare Manager 是一款面向开发者和运维工程师的 CLI 工具,专注于三大核心场景:DNS 记录管理(A/CNAME/TXT/MX 记录的增删改查)、Cloudflare Tunnel(cloudflared)配置管理,以及 Zero Trust 安全策略的基础操作。用户通过环境变量配置 API Token 和 Zone ID 后,即可使用 .venv/bin/python3 scripts/cf_manager.py 执行各类命令。典型工作流包括:使用 list-dns 查看现有记录、、add-dns 快速指向域名到服务器 IP,或通过 update-ingress 将本地开发端口(如 localhost:3000)暴露到公网域名,实现安全的内网穿透。

工具设计充分考虑了自动化需求,所有命令返回 JSON 格式结果,便于集成到 CI/CD 流水线或脚本中。--dry-run 模式允许用户在实际执行前预览变更,避免误操作影响生产环境。

显著优点

官方 API 背书:直接调用 Cloudflare 官方 REST API,功能稳定可靠,与平台原生能力保持一致。

安全设计完善:强制使用最小权限的 API Token(而非全局 API Key),敏感凭证通过环境变量注入,无硬编码风险。YAML 解析采用 safe_load()(),杜绝反序列化漏洞。

操作可预览--dry-run 模式是亮点功能,用户可在修改 DNS 记录或重启 Tunnel 服务前完整预览变更内容,显著降低生产事故概率。

权限管控透明:SKILL.md 明确标注所有特权操作(sudo 需求),并提供 sudoers.example 参考配置,帮助用户遵循最小权限原则限制命令范围。

依赖精简可控:仅依赖 requestsPyYAML 两个成熟开源库,无动态代码加载或远程脚本执行行为,供应链攻击面极小。

潜在缺点与局限性

来源可信度限制:作者为社区个人开发者(1999azzar),非 Cloudflare 官方或知名组织维护,长期更新和维护承诺存在不确定性。

功能边界较窄:专注于 DNS 和 Tunnel 基础管理,不支持 WAF 规则深度配置、Load Balancer、Workers 部署等高级 Cloudflare 功能。

系统权限依赖:Tunnel 配置功能强制依赖 sudo 权限,在容器化环境或无 root 权限的共享主机上无法使用完整功能。

输入验证待加强:当前仅对 DNS 记录类型做枚举限制,hostname、IP 地址等参数缺乏严格的格式校验(如正则验证),存在输入错误导致 API 调用失败的风险。

无审计日志:未内置操作审计功能,无法追溯历史变更记录,对合规要求较高的团队需自行封装日志层。

适合的目标群体

  • 独立开发者:需要快速将本地开发环境暴露到公网进行演示或 webhook 调试
  • 小型运维团队:管理少量域名的 DNS 记录,追求轻量级自动化替代重量级平台
  • DevOps 工程师:将 DNS 变更集成到基础设施即代码(IaC)工作流中
  • 技术爱好者:学习 Cloudflare API 和 Tunnel 技术的入门工具

使用风险

凭证泄露风险:API Token 存储于 .env 文件,若文件权限配置不当(未设为 600)或误提交至版本控制,可能导致域名被恶意接管。

sudo 权限扩大化:若未按建议配置受限 sudoers 规则,用户可能获得完整的系统 root 权限,违背最小权限原则。

生产环境误操作:尽管有 --dry-run,但直接操作 DNS 记录仍可能导致服务中断(如误删关键 A 记录),建议在变更前备份现有配置。

API 速率限制:Cloudflare 对 API 调用有频率限制,高频自动化场景需自行实现重试和退避逻辑。

依赖维护风险requestsPyYAML 虽为成熟库,但若长期不更新,可能累积已知 CVE 漏洞,建议定期审计依赖版本。

安全解读

核心用法

Cloudflare Manager 是一款面向 DevOps 和云工程师的基础设施自动化工具,主要提供三大能力:

1. DNS 记录管理:支持 A/CNAME 记录的增删改查,通过调用 Cloudflare REST API 实现域名解析自动化
2. Cloudflare Tunnel 管理:封装 cloudflared 客户端配置,可将本地端口(如 :3000)安全暴露至公网域名,无需开放服务器端口

3. Zero Trust 策略:支持访问策略和 WAF 规则的基础管理

典型使用场景包括:"把 subdomain 指向我的服务器 IP"、"让外部访问我本地的开发环境"。

显著优点

  • 官方 API 集成:直接调用 api.cloudflare.com,数据全程 TLS 1.2+ 加密,可靠性高
  • 开箱即用:封装复杂配置为简单 CLI 命令,降低 Tunnel 部署门槛
  • 安全设计意识:文档明确要求最小权限 Token(Zone.DNS:Edit),而非全局 API Key
  • Dry-run 模式--dry-run 参数可在实际执行前预览变更,避免误操作
  • 依赖成熟:仅依赖 requestsPyYAML 两个广泛审计的基础库,无已知 CVE

潜在缺点与局限性

  • 特权操作依赖 sudo:修改 /etc/cloudflared/config.yml 和重启服务需要 root 权限,若配置不当存在权限滥用风险
  • 单 Zone 限制:每个实例仅管理一个 Zone ID,多域名场景需多套配置
  • Linux 中心化:Tunnel 服务管理依赖 systemd,Windows/macOS 支持有限
  • 社区维护:由个人开发者维护,长期更新和 SLA 保障存疑

适合人群

  • 需要将本地开发环境快速暴露公网的全栈开发者
  • 管理 Cloudflare 基础设施的中小型团队运维人员
  • 学习 Zero Trust 架构和网络穿透的技术爱好者

常规风险

| 风险点 | 说明 | 缓解措施 |
|--------|------|----------|
| sudo 权限滥用 | subprocess 调用 `sudo tee` 和 `systemctl` | 按官方示例配置 sudoers,限制命令白名单 |
| API Token 泄露 | 环境变量存储凭证 | `.env` 文件设 600 权限,定期轮换 Token |
| 配置覆盖误操作 | `update_ingress` 直接修改系统文件 | 强制先用 `--dry-run` 验证 |
| 供应链风险 | 依赖库存在潜在漏洞 | 定期执行 `pip install -U requests PyYAML` |

cloudflare-manager 内容

references文件夹
scripts文件夹
手动下载zip · 4.9 kB
tunnel-guide.mdtext/markdown
请选择文件