站点运营

站点运营: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 和到期时间管清楚,比出事后反复刷新缓存有效得多。