站点运营

站点运营:DNS 解析與域名切換自查,別让 TTL 和残留记錄把換机拖成事故

域名解析是訪客和蜘蛛到達站点的第一跳,平时最容易被忽略。本文整理一套 DNS 自查清單:如何判断問题出在递归解析還是權威记錄、常见的 TTL 過長與记錄冲突、換服務器或上 CDN 时的操作顺序,以及切換後该驗證哪些环节,让迁移過程少一些“有人看到舊頁面”的混乱。

站点运营

站点运营:DNS 解析與域名切換自查,別让 TTL 和残留记錄把換机拖成事故

域名解析是訪客和蜘蛛到達站点的第一跳,也是最容易被忽略的一环。它平时安静得让人忘记存在,一旦要換服務器、上 CDN、加新子域,問题就集中冒头:一部分人訪問到舊机器,一部分人訪問到新机器,日誌里两套 IP 混着出現,排查时又说不清是哪一层配错。下面這份清單按“定位—配置—切換—驗證”的顺序整理,可以在動手前先過一遍。

一、先搞清楚是谁在解析

同名解析结果不一致,先別急着改记錄,先確認差异来自哪一层。常见的鏈路有四段,任何一段都可能留下舊資料:

  • 本地與系統缓存:浏览器、操作系統、部分安全软件都會缓存解析结果;
  • 递归解析器:运营商或公共 DNS 會按 TTL 缓存,TTL 没到期就不會重新問;
  • 權威 DNS:域名商或自建 DNS 上的记錄,才是真正被讀取的源头;
  • 調度层:使用 CDN 或智能解析时,返回的 IP 是調度结果,不一定是源站地址。

用 dig 或 nslookup 分別向本地、公共 DNS 和權威服務器查询,看到的结果差异落在哪一段,基本就能定位問题范围。

二、日常最容易踩的几類配置問题

  • TTL 设得過長:為了“稳定”把 TTL 设成一天甚至一周,真到迁移时舊记錄會長時間残留,用戶和新老机器之間来回跳。
  • CNAME 與其他记錄冲突:同一主机名同时存在 CNAME 和 A、MX、TXT 等记錄,解析行為不确定,部分解析器會直接返回失敗。
  • 泛解析放得太宽:* 通配记錄會让拼错的子域也返回正常頁面,蜘蛛可能顺着無效地址抓到大量内容相同的頁面。
  • 线路解析漏配:做了电信、联通、移動分线路解析,却只配了一两條线路,其余线路回落到預設值,出現“部分地区打不開”。
  • IPv6 记錄與服務器不匹配:配了 AAAA 记錄但服務器或安全组没有放行 IPv6,部分訪客會拿到连不通的地址。
  • 迁移时顺手删记錄:整理解析列表时誤删 MX、SPF、DKIM 或第三方驗證用的 TXT,站点能開但邮件和驗證全断。
  • 域名本身的狀態:到期時間、實名或备案狀態、DNS 服務器是否被改動,這些属于基础項,建议固定周期核對。

三、換服務器或切換解析的推荐顺序

  1. 提前一两天把目标记錄的 TTL 調低,给後續改動留出快速生效的窗口;
  2. 新环境先把站点跑通,用本地 hosts 或測試域名驗證頁面、證书、重定向、表單等關键路径;
  3. 確認證书覆盖所有要用到的域名與子域,避免切換後出現證书告警;
  4. 改動解析记錄,一次只改一层,便于出問题时快速回退;
  5. 舊机器繼續保留一段時間,观察訪問日誌是否還有請求打進来,確認没有遗漏来源;
  6. 稳定執行几天後,再把 TTL 恢复到常規值。

四、切換之後要驗證什么

记錄改完不等于事情結束,建议至少检查這几項:

  • 從不同網絡环境查询解析结果,確認各地返回一致;
  • 用不带缓存的請求方式訪問首頁與几個内頁,看返回狀態碼與内容是否正确;
  • 查看站点日誌里的来源 IP 分布,判断是否還有流量落在舊地址;
  • 检查 HTTPS 握手是否正常,有没有證书不匹配或混合内容提示;
  • 观察一段時間内的抓取情况,確認蜘蛛抓到的版本與目前线上版本一致。

五、把 DNS 纳入日常巡检

解析不需要天天改,但值得定期看一眼:儲存一份目前解析记錄清單,记錄域名到期時間,给關键记錄設定解析监控與告警。這样下一次迁移时,你手里有一份可對照的底稿,而不是對着一堆陌生的记錄猜测哪條還能删。

DNS 出問题的特点是不报错、只是有人看不到、有人看到舊的。把记錄、TTL 和到期時間管清楚,比出事後反复刷新缓存有效得多。