今天早上收到阿里支的短信:阿里云解析DNS免费版从2026年6月24日起,单域名日解析量上限从之前的较高值调到了10万次,超限会触发动态限速。

听到这个消息我开始想几个实际问题。
解析次数怎么算
不是按请求数算,是按域名被不同客户端首次解析的次数算。
一篇文章里用了10张图片,只要图片域名和主站域名一样,浏览器只会解析一次,后续直接从缓存取。1万次访问不等于1万+N次解析,大概还是1万次左右。
如果图片走独立CDN域名(如 img.zengwu.com.cn),那算两个域名的解析,各算各的。
计费单位是"权威DNS服务器收到的查询请求次数",不是"用户访问次数"
- 相同域名 + TTL 内 → 不重复计费
- TTL 过期 → 才产生新解析
- 多台设备/多浏览器 → 各自独立,但共享网络层缓存可减少
默认DNS的 TTL
主流DNS默认TTL:
| DNS | 默认TTL | 可设置范围 |
|---|---|---|
| 阿里云CDN | 600s(10分钟) | 60s ~ 86400s |
| 腾讯云CDN | 600s | 1s ~ 86400s |
| CloudFlare | 300s | 120s ~ 86400s |
| AWS CloudFront | 86400s | 60s ~ 86400s |
所以默认情况下同一个域名10分钟后才会重新解析。
换浏览器、换电脑、关了再开——这些不会每次都触发新解析,取决于各层缓存(浏览器缓存、系统缓存、运营商缓存)是否还在。
DNS解析量为什么会这么高
打开阿里云后台看了一下,昨天解析次数46多万次,我了个去,我的博客访问量没这么多啊,DNS解析量怎么会有这么高呢。

博客域名和几个二级子域名使用了阿里去的ESA边缘加速,ESA边缘加速的节点在替你查DNS
用户A(上海) → 边缘节点1 → 你的源站
用户B(北京) → 边缘节点2 → 你的源站
用户C(广州) → 边缘节点3 → 你的源站
ESA在全球有大量PoP节点(可能有几百个)。每个节点首次访问你的域名时,都会去查你的权威DNS。而这些节点分布在全球各地,IP不同,所以会被计为独立的查询请求。
| 来源 | DNS查询量 |
|---|---|
| 用户浏览器(1千/天) | ~1000次 |
| ESA全球PoP节点 × 你的TTL内刷新 | 可能数万到数十万次 |
| 合计 | 你看到的46万次 |
怎么优化减少解析次数
IP固定 → 拉长TTL
阿里云的ECS服务器基本是长期固定IP,既然我的IP长期固定不动,能不能把TTL拉长减少解析次数?
能。拉满86400秒(24小时),理想情况下每个域名每天最多1次解析,10万次上限根本用不完。
但有个操作规范:
平时长,故障前短。
哪天要换IP了,提前3-5天把TTL改成300秒或更低,等旧TTL完全过期后再改DNS记录,确认生效再拉长。别设成24小时然后彻底不管,万一出问题切不过来。
CNAME到阿里云ESA/CDN的情况
我的域名用CNAME解析到阿里云ESA边缘加速(CDN情况类似),这个CNAME值是固定的,能调TTL吗?
能。但阿里云云解析ESA限制最低600秒,最大86400秒,所以最低10分钟,做不到更低了。
重点来了:CNAME设1天,阿里云ESA那边默认10分钟,对我域名的解析次数按哪个算?
答案是按CNAME的TTL算,跟ESA默认10分钟无关。
用户 → 查你的域名 → 云解析ESA(你的CNAME TTL=86400)
↓ 返回CNAME
阿里云ESA DNS(TTL=600)→ 返回IP
云解析ESA只管你这一段(zengwu.com.cn → CNAME),后面CNAME → IP是阿里云自己的DNS,不走你的额度。浏览器拿到CNAME后,在86400秒内不会再问云解析。
所以:CNAME设86400,ESA那边是多少无所谓。
总结
对个人站点来说,10万次/天其实挺宽松的。但如果用多了ESA/CDN之类的就有点悬,想稳妥:
- CNAME TTL 直接拉满86400
- IP固定就别动,需要动之前提前改TTL
- 静态资源尽量用同一个子域名,别分散
就这样。
评论区