360 Secure SkillHub
360 安全技能中心

Cloudflare Dns

这是基于Cloudflare API的DNS管理工具,通过`cf-dns.sh`脚本实现核心功能:支持A、AAAA、CNAME等多类型DNS记录的增删改查,还可设置动态域名(DDNS)。典型场景包括添加子域名指向IP、配置邮件MX/SPF记录、为家庭服务器搭建DDNS。输入为命令行参数,可通过环境变量传入凭证,输出JSON格式。

pushp1997
pushp1997
热度 83.24
最近更新 2026-05-11 15:57:11
分类:开发依赖:代码执行 / 第三方 API应用场景:API 集成 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add cloudflare-dns
Metadata
name
cloudflare-dns
version
1.0.0
description
Manage Cloudflare DNS records via API. Use when user asks to list, create, update, or delete DNS records, set up DDNS, manage domains on Cloudflare, or check DNS propagation. Supports A, AAAA, CNAME, TXT, MX, and other record types.

Cloudflare DNS

Manage DNS records via Cloudflare API using the bundled cf-dns.sh script.

Setup

Store credentials in environment or pass via flags:

export CF_API_TOKEN="your-api-token"
export CF_ZONE_ID="your-zone-id"       # optional, can auto-detect from domain

Get API token: Cloudflare Dashboard → My Profile → API Tokens → Create Token → "Edit zone DNS" template.

Get Zone ID: Cloudflare Dashboard → select domain → Overview → right sidebar "Zone ID".

Usage

The script is at scripts/cf-dns.sh. All commands:

# List zones (find zone ID)
cf-dns.sh zones

# List all records for a zone
cf-dns.sh list <zone_id>
cf-dns.sh list --domain example.com

# Get specific record
cf-dns.sh get <zone_id> <record_id>

# Create record
cf-dns.sh create <zone_id> --type A --name www --content 1.2.3.4 [--ttl 300] [--proxied]
cf-dns.sh create <zone_id> --type CNAME --name blog --content example.com
cf-dns.sh create <zone_id> --type TXT --name @ --content "v=spf1 ..."
cf-dns.sh create <zone_id> --type MX --name @ --content mail.example.com --priority 10

# Update record
cf-dns.sh update <zone_id> <record_id> --content 5.6.7.8 [--ttl 600] [--proxied]

# Delete record
cf-dns.sh delete <zone_id> <record_id>

# DDNS: update A record to current public IP
cf-dns.sh ddns <zone_id> --name home
cf-dns.sh ddns --domain example.com --name home

Common Patterns

Add subdomain pointing to IP:

cf-dns.sh create <zone_id> --type A --name subdomain --content 203.0.113.50 --proxied

Set up email (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"

Dynamic DNS for home server:

# Run periodically via cron
cf-dns.sh ddns --domain example.com --name home

Notes

  • --proxied enables Cloudflare proxy (orange cloud) — hides origin IP, adds CDN
  • TTL in seconds; use 1 for "Auto" when proxied
  • @ means root domain
  • Script outputs JSON; pipe to jq for parsing