100个域名各买一个DNS服务商的控制台,手动一条条加A记录加到手软,换个IP要改两小时还容易漏。Cloudflare免费API 3分钟就能跑完,DNSPod模板批量覆盖,dig+Shell一分钱不花。为什么还有人一条条手改?
刚拿到一批新域名的时候,登录域名注册商后台、找到DNS管理、点添加记录、选A记录类型、填IP、设TTL、点保存……重复一百遍。两个月后要换服务器IP,又是这一套流程再来一遍。上次加记录时三个域名的记录类型选成了CNAME,导致解析一直没生效,直到流量没起来才查出来。
站群DNS管理的真正痛点不是"不知道DNS怎么配",而是域名数量一上来,重复操作的时间和出错概率成倍增长。这篇文章把市面上能用的批量DNS解析方案捋一遍,从零成本命令行到API脚本到专业面板,根据域名数量和操作频率选。
DNS批量管理五条路线
| 1 | dig / nslookup 命令行 — 零成本,适合只查不写:批量验证解析是否生效、检查DNS污染、做日常监控 |
| 2 | 在线批量解析工具 — 即开即用,适合偶尔查一批域名:验证解析配置、排查问题 |
| 3 | DNS服务商API + 脚本 — 一次写好一直用,适合频繁增删改:Cloudflare API、DNSPod API |
| 4 | DNS服务商控制台模板 — 不用写代码,适合运营人员:DNSPod批量添加/修改 |
| 5 | 多域名DNS管理面板 — 专业级,适合50个域名以上长期管理:cf-dns-batch等开源面板 |
一、dig和nslookup:零成本的批量查询方案

先说"只查不写"的场景。有时候你不需要改DNS记录,只是想确认:这50个域名解析是不是都生效了?昨天改的IP是不是都传播到位了?某个域名有没有被DNS污染?这时候根本不需要登录任何控制台,一个命令行就够了。
最基本的用法:把所有域名写进一个txt文件,一行一个,用while循环逐行dig:
#!/bin/bashwhile IFS= read -r domain; do[[ -z "$domain" || "$domain" =~ ^# ]] && continueip=$(dig +short A "$domain" 2>/dev/null)if [ -n "$ip" ]; thenecho "$domain → $ip"elseecho "$domain → 解析失败"fidone < domain_list.txt这个脚本30秒写出来,100个域名跑完不到一分钟。比登录控制台挨个查快太多了。如果要并发加速,用xargs开10个进程,速度提升近10倍:
cat domain_list.txt | xargs -P 10 -I {} sh -c 'domain="{}"result=$(dig +short A "$domain" 2>/dev/null)[ -n "$result" ] && echo "$domain,$result" >> results.csv || echo "$domain,ERROR" >> errors.log'dig的几个实用参数:
· +short — 只输出IP,脚本解析最方便
· @8.8.8.8 — 指定DNS服务器,测试不同地区解析结果
· +trace — 跟踪完整解析路径,排查解析链路问题
· +time=5 +tries=2 — 超时5秒、重试2次,防止脚本卡住
dig方案的限制:只能查不能改。要批量修改DNS记录,得换下面的方案。
二、在线批量DNS查询工具:不用装任何东西
不想开终端、不想写脚本、偶尔查一下,在线工具最省事。几个主流工具:
| 工具 | 单次支持 | 记录类型 | 特点 |
|---|---|---|---|
| 九零工具箱 | 批量不限数量 | A/CNAME/MX/NS/TXT/AAAA | 多线路多节点,可对比不同地区解析结果 |
| UU在线工具 | 单次30个域名 | A/CNAME | 界面极简,适合快速批量验证 |
| BugScaner | 批量不限数量 | A记录 | 结果可导出,适合批量查IP |
| 拨测boce | 单域名全国节点 | 全类型 | 全国多节点多运营商,排查DNS污染 |
在线工具最适合的场景:域名20个以内、一次性查询、不需要修改记录、不想装软件不写代码、需要多地多运营商对比解析结果。
三、Cloudflare API + Python脚本:免费方案里功能最强的
Cloudflare是目前站群DNS管理中使用率最高的平台:免费计划就提供了完整的API接口,不限制域名数量,解析速度快(全球Anycast网络),自带CDN和DDoS防护。
批量添加DNS记录的流程:获取API Token → 获取每个域名的Zone ID → 遍历域名列表调用DNS Records API。下面是核心Python脚本:
import requestsAPI_TOKEN = "你的Cloudflare_API_Token"HEADERS = {"Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json"}# 域名 → Zone ID 对照表zones = {"example1.com": "zone_id_1", "example2.com": "zone_id_2"}TARGET_IP = "192.168.1.100"for domain, zone_id in zones.items():url = f"https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records"data = {"type": "A", "name": domain, "content": TARGET_IP, "ttl": 120, "proxied": False}resp = requests.post(url, headers=HEADERS, json=data)if resp.json().get("success"):print(f"✓ {domain} → {TARGET_IP}")else:print(f"✗ {domain}: {resp.json().get('errors')}")核心优势:一次写好后,以后换IP只需改一个变量,重新跑一遍,100个域名的A记录全部更新,整个过程不超过3分钟。手工操作100个域名每条记录算30秒也要50分钟。
Cloudflare API注意事项:
· 免费版API速率限制每分钟1200次,100个域名完全够用
· proxied=false表示仅DNS解析不走CDN(灰云),站群场景建议用灰云,每个站独立IP
· 域名必须先添加到Cloudflare(改NS服务器指向CF),API才能操作
四、DNSPod:国内站群的首选,控制台批量操作最省心
如果域名在腾讯云/DNSPod,批量DNS管理比Cloudflare更友好——DNSPod控制台本身就提供批量添加和批量修改功能,不需要写代码。操作路径:DNSPod控制台 → 批量操作 → 选择多个域名 → 填写统一记录值 → 一键提交。免费版支持10个域名,专业版99元/年支持更多域名和更丰富功能(线路分组、D监控等)。
DNSPod相比Cloudflare的一个显著优势是国内解析速度更快。如果站群用户主要在国内,DNSPod的解析延迟普遍比Cloudflare低。域名在腾讯云注册的直接用DNSPod,不需要额外迁移NS服务器。高级需求也可以调用DNSPod API(Record.Create / Record.Modify接口,20次/秒),功能和Cloudflare API类似。
五、三大DNS服务商API方案横向对比
| 对比维度 | Cloudflare API | DNSPod API | 阿里云DNS API |
|---|---|---|---|
| 免费版限制 | 不限域名数量,API免费 | 免费版10个域名,API可用 | 免费版无API,需付费版 |
| API速率限制 | 1200次/分钟 | 20次/秒 | 按套餐等级不同 |
| 国内解析速度 | 中等(海外节点为主) | 快(国内多节点) | 快(国内多节点) |
| 控制台批量功能 | 较弱,主要靠API | 强,模板批量添加/修改 | 中等,支持批量导入导出 |
| 额外价值 | 免费CDN、DDoS防护、SSL | D监控、线路分组、宕机切换 | 可用性监控、健康检查 |
| 适用场景 | 海外站群、全球用户 | 国内站群、域名在腾讯云 | 国内站群、域名在阿里云 |
一条经验:域名在哪家注册商就在哪家管理DNS最方便。域名和DNS在同一个平台,API调用一步到位。跨平台多一步改NS服务器的操作,批量处理时每个域名都要验证NS是否改好了。
六、开源多域名DNS管理面板:超过50个域名值得搭一套

当域名数量超过50个,即使有API脚本,每次要查某个域名的解析状态、对比不同域名的配置差异,还是不够方便。这时候需要一套可视化面板,把所有域名的DNS记录集中在一个界面上管理。
cf-dns-batch
基于Cloudflare API的批量DNS管理面板,部署在自己服务器上。一个界面管理所有Cloudflare域名,批量增删改DNS记录,支持A/CNAME/MX/TXT/SRV全类型,开源免费Docker一键部署,手机端适配。
CF-dns
另一个Cloudflare DNS面板,强调一键申请Origin证书、域名分组管理、DNS记录导入导出、批量开关CDN代理,适合站群场景的分类管理。
两款开源面板本质上是给API套了一个可视化界面。部署成本很低:最低配VPS,Docker一条命令拉起来。
选面板还是选脚本?
· 20个域名以下 → 脚本够用
· 20-50个域名 → 脚本 + 定期导出CSV备份
· 50个域名以上 → 值得搭一套面板
· 多人协作 → 必须用面板,脚本只适合个人操作
七、站群DNS管理最容易踩的四个坑
| 坑 | 表现 | 怎么避免 |
|---|---|---|
| TTL设太长 | 换IP后部分地区24小时还在访问旧服务器,DNS缓存没过期。 | 日常设600-3600秒。换IP前提前把TTL降到60秒,等一个周期后再改。 |
| CDN代理全开 | Cloudflare橙色云朵开了CDN后所有域名走同一个CF出口IP。 | 站群场景proxied=false(灰云),纯做DNS解析不走CDN。 |
| 忘加MX/TXT记录 | 只加了A记录,忘了MX(邮件)、TXT(SPF/DKIM验证)。 | 提前列标准DNS记录清单,A/CNAME/MX/TXT至少四条。 |
| 改了记录不验证 | 批量提交100条记录,有三个域名IP最后一位输错了。 | 改完跑一遍dig批量查询脚本,对比期望值和实际值。 |
八、根据域名数量和操作频率选方案
最终选什么方案,不看技术偏好,看域名数量和操作频率:
10个域名以下,偶尔查
在线工具
九零工具箱/UU工具,粘贴即查
10-50个域名,经常查
dig+Shell
零成本,crontab定时监控
20-100个域名,要增删改
API脚本
Cloudflare/DNSPod API,3分钟批量更新
50个域名以上,多人协作
管理面板
cf-dns-batch,可视化集中管理
如果站群规模大到几十上百个域名,光靠脚本和面板还不够——你需要把DNS管理纳入整体运维体系。比如用UC建站系统的多站看板统一监控每个站点的解析状态、收录情况、流量走势,DNS异常能自动预警而不是等到流量掉了才发现。比手动跑dig脚本查几十个域名高效得多。
再说一个容易被忽略的点:DNS变更后的生效验证。很多人以为点了保存就完事了,但DNS传播是有延迟的——你改了记录,有些地区的递归DNS服务器可能还在用旧缓存。特别是TTL设了86400秒(24小时)的,改完等一天才能全网生效。正确的做法是:改完DNS记录后,马上用dig指定多个公共DNS服务器(8.8.8.8、1.1.1.1、114.114.114.114)分别查询,确认新IP已经开始传播。如果三个都返回了新IP,说明权威DNS已经更新,剩下就是各地递归缓存的时间问题了。
还有个场景:域名到期被抢注后,前任主人留下的DNS记录还在。如果你批量采购了一批过期域名,建议先用在线工具扫一遍每个域名的当前解析记录,看看是不是还有指向别人服务器的CNAME、MX记录,该清的清掉,免得用户访问到错误地址。
最后说一句:DNS批量管理这件事,方案本身不难——难的是意识到"该换了"。很多人习惯了一条条手改,习惯了登录十个八个控制台,习惯了偶尔改漏一两个域名过几天才发现。但只要你开始用dig脚本做批量验证、用API脚本做批量修改、用面板做集中管理,你会发现之前花在DNS上的时间,80%都是可以省掉的。
域名越多,越不能靠人肉操作。一个简单的dig脚本配合crontab每天跑一次,发现问题比流量掉了才发现早得多。
