所有教程都说「等 24 到 48 小时 DNS 传播」。2026 年这几乎总是错的。Cloudflare、Route 53、多数现代 DNS 服务商 5 分钟内全球推完。改完 30 分钟还不通就是配置问题,不是传播问题。
问题背景
DNS 传播指新记录在全网可见所需时间。真正的上限是 TTL(Time To Live)——缓存 resolver 在 TTL 过期前会继续发旧值。现代 DNS 加短 TTL 是分钟级,不是天级。
判断标准
- 加了 A 记录,自己能通但另一国朋友不通。
- DNS 检查工具(whatsmydns.net)有些区域绿勾有些红叉。
dig +short yoursite.com本地返回新 IP,远端服务器返回旧 IP。- host dashboard 「pending verification」超过 15 分钟。
实操步骤
-
记下改 DNS 的时间,从这开始算,不是从你发现时算。
-
查改前的 TTL——这是旧值还能被缓存多久的上限。
dig输出里记录类型前那个数字就是 TTL:
dig yoursite.com A
# ;; ANSWER SECTION:
# yoursite.com. 3600 IN A 151.101.1.195
# ^^^^
# TTL(秒)——旧值可能被缓存这么久
- 同时查本地 resolver 和公共 resolver。三个都返回新值,说明本地缓存已更新:
dig +short yoursite.com # 你本地 resolver
# 76.76.21.21
dig +short @1.1.1.1 yoursite.com # Cloudflare 公共 resolver
# 76.76.21.21
dig +short @8.8.8.8 yoursite.com # Google 公共 resolver
# 76.76.21.21
- 查清楚到底谁在为你的域名负责——「改完没生效」最常见原因是你在注册商改,但流量走 Cloudflare / Route 53:
dig NS yoursite.com +short
# adi.ns.cloudflare.com.
# kim.ns.cloudflare.com.
# → 该在 Cloudflare 里改 zone,不是在注册商
-
用 whatsmydns.net 或 dnschecker.org 做多区域检查。一行一个全球 resolver——数红点,不要只看绿。
-
host 还显示「pending verification」——确认 host 到底在查什么:
# host 在查的具体记录
dig +short TXT _vercel.yoursite.com
# "vc-domain-verify=yoursite.com,abc123"
# CDN 的 A 记录验证
curl -sI https://yoursite.com | head -3
dig 返回值对,但 host 没反应,就是 host 那边的延迟,不是传播问题。回 dashboard 手动触发一次重新校验。
- 新域名或刚换 nameserver 才是真慢——registry 全球更新可能要几小时。可以验证 registry 是否已经接受:
whois yoursite.com | grep -i 'name server'
# Name Server: ADI.NS.CLOUDFLARE.COM
# Name Server: KIM.NS.CLOUDFLARE.COM
- 只是你自己机器卡住——清本地 DNS 缓存:
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux (systemd-resolved)
sudo resolvectl flush-caches
# Windows(管理员 PowerShell)
ipconfig /flushdns
容易踩的坑
- nameserver 已指向 Cloudflare 还在注册商改 DNS——Cloudflare 不读注册商 zone,改了等于没改。
- 迁移前不降 TTL——高 TTL 缓存久,体感「传播慢」。
- 相信浏览器。浏览器和 OS 缓存 DNS 很激进。flush DNS 或开无痕绕开。
- 把 host 问题当 DNS 问题——有时记录没事,是 host 在做 SSL 签发或域名验证,要它自己的时间。
- 新买域名期待 60 秒就通——新域名 registry 传播才是真慢的,可能 30 分钟到几小时。
这篇适合谁
刚改完 DNS 在焦虑的人。剧透:比老传说快多了。
这篇不适合谁
明确要求自身验证时间的 host(部分企业平台)——读它们文档。
FAQ
- 「24 到 48 小时」还有意义吗?: 只对全新域名的 nameserver 变更。已有 DNS 改记录是分钟级。
- 怎么清本地 DNS 缓存?: macOS:
sudo dscacheutil -flushcache。Windows:ipconfig /flushdns。Linux 看 resolver。或者直接重启。 - 为什么一个国家显示,另一个不显示?: 不同 resolver TTL 不同,老缓存过期就都一致了。
- TTL 要一直留低吗?: 不要。低 TTL 意味着更多 DNS 查询。迁移稳定后调回 3600 或 86400。