Cloudflare
Dotnify 使用 API 令牌(而非全局 API 密钥)连接 Cloudflare。令牌在调用 Cloudflare API v4 时作为 Authorization 头中的 Bearer 令牌发送。
创建 API 令牌
- 登录 Cloudflare 控制台
- 前往 我的个人资料 → API 令牌
- 点击 创建令牌
- 使用 编辑区域 DNS 模板(推荐),或创建自定义令牌
推荐权限
Dotnify 管理你的 DNS 记录,令牌至少需要:
| 权限 | 范围 |
|---|---|
| 区域 - DNS - 编辑 | 特定区域或所有区域 |
| 区域 - 区域 - 读取 | 特定区域或所有区域 |
如果希望 Dotnify 列出所有解析域(用于解析域选择步骤),令牌必须对要管理的解析域具有区域 - 区域 - 读取权限。
使用"编辑区域 DNS"模板
内置模板提供了正确的权限。使用时:
- 在区域资源下,选择令牌可访问的解析域
- 所有区域——令牌可访问账户中的每个解析域
- 特定区域 → 选择个别解析域
- 点击 继续到摘要 → 创建令牌
- 复制令牌值——之后将无法再查看
在 Dotnify 中添加服务商
- 前往 服务商 → 添加服务商
- 选择 Cloudflare 作为服务商类型
- 输入显示名称(如 "Production Cloudflare"、"Staging Cloudflare")
- 粘贴 API 令牌
- 点击验证并继续
Dotnify 将调用 Cloudflare 的 /user/tokens/verify 端点验证令牌,然后获取你的解析域。如果验证失败,请检查:
- 令牌是否正确复制(无尾部空格)
- 令牌是否已过期
- 令牌是否具有所需权限
选择解析域
验证后,Dotnify 显示令牌可访问的所有解析域。你可以:
- 勾选特定解析域以仅管理这些域名
- 全部不勾选以管理每个可访问的解析域
之后可以通过编辑服务商来更改解析域选择。
Dotnify 如何使用令牌
Dotnify 将 API 令牌存储在 Redis 中,并使用它直接调用 Cloudflare API v4:
| 操作 | Cloudflare 端点 |
|---|---|
| 验证令牌 | GET /client/v4/user/tokens/verify |
| 列出解析域 | GET /client/v4/zones |
| 列出记录 | GET /client/v4/zones/{zoneId}/dns_records |
| 创建记录 | POST /client/v4/zones/{zoneId}/dns_records |
| 更新记录 | PATCH /client/v4/zones/{zoneId}/dns_records/{recordId} |
| 删除记录 | DELETE /client/v4/zones/{zoneId}/dns_records/{recordId} |
Cloudflare 特有功能
TTL 自动模式
Cloudflare 支持自动 TTL。在 Dotnify 中,将 TTL 设置为 1 即启用自动 TTL。当 TTL 为 1 时,UI 显示"自动"。
代理记录(橙云)
Cloudflare 允许 DNS 记录通过其网络代理。在 Dotnify 中创建或编辑记录时,可以切换代理复选框。此功能仅适用于 Cloudflare 服务商。
记录注释
Cloudflare 支持对 DNS 记录添加注释。Dotnify 在读取和显示记录时保留注释。
安全说明
- API 令牌以明文存储在 Redis 中(当前 MVP 设计)。请使用强凭据保护你的 Redis 实例。
- 通过 API 返回服务商列表时,令牌被掩码——仅显示最后 4 个字符。
- 编辑服务商时,可以留空令牌字段以保持当前令牌不变。
- 令牌从不发送到客户端 JavaScript——所有 Cloudflare API 调用均在服务端进行。