找回密码
 新建账号

阿里公共 DNS 的两个巨坑:长时间缓存、篡改记录值

[复制链接]
蔡徐坤 发表于 2026-6-14 12:28 | 显示全部楼层 |阅读模式
前些天买了一个新域名 bengcu.com,将它扔到 Cloudflare 解析。所有记录 TTL 都是五分钟,做的都是 DNS only 解析,也就是不使用 Cloudflare 的 CDN 服务。然而在自己的设备上访问时,始终会带上 Cloudflare 的响应头,一天后仍然如此。
  1. Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
  2. Cf-Cache-Status: DYNAMIC
  3. Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=UIujKopwcaGtdCogQ7u0I71KJPHHlRZ9xMKCmreeLm5bHJuMbL3sZmVBNRieQYuHti6CBLbPD2GwRnnQLFOF5Rjl%2B3csBvZB93OYgsHFfDWZ4d1epKVzRx8An8sd98%2Bcyg%3D%3D"}]}
  4. CF-RAY: a0a660290fa32ea8-LAX
复制代码
也就是说,DNS only 没有生效,域名还是解析到了 Cloudflare 的 IP 去了,访问网站时,实际上先访问了 Cloudflare 的服务器,Cloudflare 的服务器再去真正的服务器那里把资源搬过来向真正的访客展示。

起初还怀疑 Cloudflare 又犯病了,只因它确实犯过不少次数的病,后来跑到一台香港服务器上拿 curl 访问了一下网站,一切正常。这说明问题没有出在 Cloudflare 而是出在了我自己的设备上。

于是使用 nslookup 查询了域名解析,发现默认 DNS 服务器是 2400:3200::1,使用 nslookup 的 server 命令修改解析服务器后,好家伙,也变正常了。

后来在另外一台电脑上,bengcu.com 甚至被解析到了 127.0.0.1,阿里公共 DNS 竟然篡改记录值。查了一下,这台电脑使用的也是阿里公共 DNS 解析服务器——并不能怪这台电脑,真正的问题出在路由器上,在路由器里面 DNS 服务器被写死成 2400:3200::1 了。据说域名被解析到 127.0.0.1 通常是因为被判定为违规,但这个域名没有任何违规记录,其他 DNS 服务提供商都正常解析。

到此,阿里公共 DNS 的两个大坑已经明了:
  • 它会长时间缓存域名记录,而且忽略 TTL 设定;
  • 莫名其妙地将域名记录篡改成 127.0.0.1 或 ::1

气人的是,它还会在旧记录和错误记录之间反复切换。

我,果断地换掉了阿里公共 DNS。

手机版|轻松e站

GMT+8, 2026-6-14 16:17

快速回复 返回顶部 返回列表