訪客打不開網站,很多时候問题既不在服務器,也不在代碼,而是卡在最前面的一步:域名解析。DNS 平时安静得几乎让人忘记它的存在,可一旦记錄被改错、TTL 设得不合适,或者域名本身出了状况,整站就會一起"消失",而且從服務器内部看日誌几乎是干净的,排查方向很容易跑偏。
先把域名本身的狀態確認一遍
解析记錄是在域名之上的,域名本身有問题,记錄配得再對也没用。建议每隔一段時間登入註冊商後台看几項:
- 到期時間與自動續費:是否已開啟自動續費,绑定的支付方式是否還有效。到期後進入宽限期,解析會先被停掉。
- 域名狀態:確認没有出現 clientHold、serverHold 這類暫停解析的狀態。
- 註冊信箱:註冊时填的信箱現在還能不能收信。續費提醒、轉出確認、實名审核通知都發到這里,信箱失效等于失去控制權。
- 實名與资质:需要审核的域名,確認审核已通過且没有過期材料。
- 轉移鎖:開啟轉移鎖可以降低域名被恶意轉走的風險,但自己真要轉移时记得先關掉。
逐條核對關键解析记錄
A 记錄與 AAAA 记錄
最容易被忽略的情况是服務器換過机器、換過公網 IP,解析记錄却還是舊的。核對一下 A 记錄指向的 IP 是否就是目前服務器的地址,如果啟用了 IPv6,AAAA 记錄同样要確認。
CNAME 與 CDN 接入
接入 CDN 後,主域名的 CNAME 應该指向服務商给的地址。要注意两件事:一是 CNAME 鏈條不要拉得太長,中間某一环失效會直接導致解析失敗;二是回源配置是否還指向現在這台源站,源站換過 IP 而回源地址没更新,訪客看到的就是 5xx 或空白頁。
顺带检查 MX 和 TXT
很多人的注意力全在網站解析上,把信箱记錄改没了還不知道。MX 记錄關系到企业信箱能否收信,SPF、DKIM、DMARC 這類 TXT 记錄關系到邮件送達率。改解析时如果用的是"清空重配"的方式,很容易顺手把這些记錄一起删掉。
TTL 决定變更生效的快慢
TTL 是解析记錄的缓存時間。平时可以把 TTL 设得長一些,减少解析查询压力;一旦計划迁移服務器或更換 CDN,提前一天把 TTL 調低到几百秒,等舊缓存自然過期後再做變更,切換過程會平滑很多。變更完成後,再按需調回原来的值。避免在流量高峰时段直接改動,也避免調低 TTL 後立刻切換,那样等于没調。
判断解析是否真的生效
本地看到的解析结果不一定代表全局,因為本地和运营商的 DNS 缓存還没過期。想確認结果,可以這样做:
- 用几個不同的公共 DNS 查询工具分別查询,看返回的 IP 或 CNAME 是否一致。
- 在本机刷新 DNS 缓存後再试,排除本地缓存干扰。
- 用不同網絡环境測試,例如公司網絡、手机移動網絡、家用宽带,观察是否存在地域差异。
- 命令行下用 dig 或 nslookup 指定具体 DNS 服務器查询,绕過預設解析器,结果更接近真實情况。
- 如果多地结果長期不一致,检查解析商是否配置了分线路解析,以及各线路是否都填了正确的地址。
几個容易踩的坑
- 只配了 www 忘了裸域:訪客直接輸入不带 www 的域名就打不開,或者反過来。两個入口都應该可達,並统一跳轉到同一個版本。
- 泛解析意外開啟:\*.example.com 指向服務器後,任何拼错的子域都能解析成功,可能出現重复内容和無意义的抓取入口。
- 残留记錄没清理:換過的舊 CDN、停用的測試子域、废弃的第三方服務 CNAME,都還挂在解析列表里。
- 註冊商和解析商不是同一家:改记錄时找错後台,改完發現根本没生效。
一份可执行的自查清單
- 域名到期時間、自動續費、註冊信箱是否可用。
- A 或 CNAME 是否指向目前的服務器或 CDN 地址。
- 裸域與 www 是否都可達,跳轉是否统一。
- 是否存在多余的泛解析或废弃子域记錄。
- MX 與 TXT 记錄是否完整,信箱收發是否正常。
- TTL 是否與近期的變更計划匹配。
- 多地查询结果是否一致,有無長期未生效的线路。
- 每次變更後留一份记錄,寫清楚改了什么、為什么改。
DNS 不出問题的时候,几乎没人會想起它;可它一旦出問题,就是整站級別的。把這几項並進上线和迁移的检查清單里,比事後從服務器日誌里一点点倒查要轻松得多。