DNS 服务商怎么选:免费版够用吗
DNS 服务商决定了「用户输入域名后多久能拿到 IP」,也决定了你能用哪些高级功能。选错了,CDN 再快也白搭。
一、主要选项
| 服务商 | 免费版 | 特点 |
|---|---|---|
| Cloudflare | ✅ | 生态最全,自带 CDN/WAF,节点全球 |
| 阿里云 DNS | ✅ | 国内解析快,与备案流程衔接 |
| 腾讯云 DNSPod | ✅ | 国内快,界面友好 |
| 注册商自带 | ✅ | 零配置,功能较少 |
| Google Cloud DNS | ❌(按量) | 稳,按查询量计费 |
| Route 53 | ❌(按量) | AWS 生态,可编程 |
| DNSimple / NS1 | ❌ | 付费,功能专业 |
二、对比维度
解析速度
# 测试方法:清缓存后 dig,看 Query time
dig @1.1.1.1 www.bzii.cn | grep "Query time"
dig @223.5.5.5 www.bzii.cn | grep "Query time"
# 注意:第一次查询会慢(未缓存),第二次才反映真实速度不过说实话:各大公共 DNS 的解析速度差异,对最终用户体验的影响很小(几十毫秒,且有缓存)。
更关键的其实是国内访问是否稳定——这取决于服务商在境内有没有节点。
功能对比
| 功能 | Cloudflare 免费 | 阿里云免费 | 注册商自带 |
|---|---|---|---|
| 记录类型齐全 | ✅ | ✅ | 一般 |
| DNSSEC | ✅ | ✅ | 部分 |
| 最低 TTL | 60s(自动 300) | 600s(免费版) | 600s |
| API 管理 | ✅ | ✅ | 少 |
| 解析量统计 | ✅ | ✅ | ❌ |
| CDN 集成 | ✅ | 需另购 | ❌ |
| 故障切换 | ❌(付费) | ✅(付费版) | ❌ |
| 分线路解析 | ❌ | ✅(境内优势) | ❌ |
分线路解析(国内场景重要)
阿里云/腾讯云支持「境内走境内 IP、境外走境外 IP」。如果你同时有境内和境外服务器,这个功能很有价值。
Cloudflare 免费版不支持,但可以用 Geo Steering(付费)或通过 Worker 实现。
三、按场景选
| 场景 | 推荐 |
|---|---|
| 境外服务器 + 全球用户 | Cloudflare |
| 境内服务器 + 国内用户 | 阿里云 DNS / DNSPod |
| 境内 + 境外都有 | 阿里云(分线路)或 Cloudflare + 智能解析 |
| 不想折腾 | 注册商自带(够用) |
| 需要编程管理大量域名 | Cloudflare API / Route 53 |
四、Cloudflare 的实际体验
优点:
- 免费版就给 CDN、WAF、证书、DNSSEC;
- 界面清晰,改记录即时生效(通常 30 秒内);
- API 完善,可以脚本化管理;
- 隐藏源站 IP。
缺点:
- 国内访问不稳定——这是最大的问题,免费版节点分配不保证;
- 免费版不支持健康检查与自动故障切换;
- 橙色云开启时,某些校验(如 Let's Encrypt 的 HTTP-01)需要额外处理。
五、迁移 DNS 的正确顺序
换 DNS 服务商是有风险的操作(搞错会导致全网解析失败)。正确顺序:
- 在新服务商添加域名,把现有记录全部照抄过去(尤其别漏 MX);
- 用
dig @新NS验证新服务商返回正确; - 如果开了 DNSSEC,先关掉并删除注册商的 DS 记录;
- 去注册商改 NS 记录;
- 等 24~48 小时传播;
- 确认全部生效后,再在新服务商重新开启 DNSSEC(并回注册商填新的 DS)。
# 迁移前:导出所有记录做备份
for t in A AAAA CNAME MX TXT NS SRV CAA; do
echo "--- $t ---"; dig +short www.bzii.cn $t;
done > dns-backup.txt
# 迁移后验证
dig +short www.bzii.cn NS # 应该显示新的第 3 步不能省。 换了 NS 但 DS 记录还指向旧服务商的密钥,会导致 DNSSEC 校验失败,全网解析报错(SERVFAIL)。这是迁移 DNS 最常见的事故。
六、TTL 策略
| 阶段 | TTL |
|---|---|
| 稳定期 | 1800~3600 |
| 计划变更前 24h | 300 或 60 |
| 变更完成后 | 改回 1800+ |
七、监控 DNS 可用性
# 定期检查解析是否正常(加入监控脚本)
dig +short www.bzii.cn A | grep -q "1.2.3.4" || echo "DNS 异常!"
# 或查状态码
dig www.bzii.cn | grep "status: NOERROR" || echo "解析失败"八、我的配置
本站用的是:
- 域名注册:Cloudflare Registrar(成本价,无溢价);
- DNS 解析:Cloudflare(同一处管理,省事);
- 加密模式:Full (Strict);
- DNSSEC:已开启。
理由是整条链路都在一家,出问题只查一个地方。如果主要用户在国内,我会换成境内 DNS。
九、检查清单
- NS 记录指向的服务商就是你在改记录的地方
- 所有记录已备份(含 MX、TXT)
- TTL 设置合理
- DNSSEC 已开(且 DS 已同步到注册商)
- 有解析异常的监控或定期检查
DNS 服务商的选择,本质是「你的用户在哪」这个问题的延伸。先想清楚用户,再选服务商。
