DNS缓存清理后还是旧IP?TTL、运营商缓存和浏览器连接复用说明

本机缓存只是DNS链路中的一层
发布于 更新于
10

域名已经换到新服务器,执行 ipconfig /flushdns 后,浏览器仍然打开旧IP。继续清理本机缓存往往没有意义,因为DNS答案可能同时存在于权威服务器、递归DNS、操作系统和浏览器中;即使名称已经解析到新IP,浏览器还可能复用此前建立的HTTP/2或HTTP/3连接,CDN也可能继续返回旧缓存内容。

排查“DNS缓存清了还是旧IP”,第一步是确认你看到的究竟是旧的解析地址,还是新服务器返回了旧内容。

域名解析经过哪些缓存层

层级 它保存什么 本机flush是否能清掉
权威DNS 站长实际配置的A、AAAA、CNAME等记录 不能
递归DNS 根据TTL缓存权威答案 不能
路由器或企业DNS 局域网查询结果或转发缓存 通常不能
操作系统 本机解析器缓存的正向和负向结果 可以清理
浏览器/应用 主机缓存、连接池和应用内部状态 不一定
CDN/页面缓存 HTTP响应内容,不是DNS答案 不能

ipconfig /flushdns只处理Windows DNS客户端缓存。它不会命令运营商DNS提前丢弃记录,也不会刷新CDN或浏览器已经建立的连接。

TTL应该看修改前还是修改后

递归DNS在拿到一条记录时,会按当时响应里的TTL开始倒计时。假设旧A记录的TTL是86400秒,递归DNS在切换前刚缓存过它;你切换IP后再把TTL改成300秒,那份已有缓存仍可能按原来的剩余时间保留旧答案。新的300秒只会影响之后重新获取的记录。

因此,计划迁移时要提前至少一个旧TTL周期降低TTL。比如旧值为24小时,可以提前一天以上降到300或600秒,等待各递归缓存自然到期后再切换IP。迁移稳定后再恢复到适合业务的值,避免长期产生不必要的权威查询压力。

先查权威DNS是否已经正确

  1. 确认域名使用的权威服务器。查看当前NS记录,排除注册商后台改了A记录,但域名实际委派给另一家DNS服务的情况。
  2. 直接向权威服务器查询。分别查看A、AAAA和CNAME,记录响应值、TTL及服务器名称。若多个权威节点答案不一致,先修复同步问题。
  3. 检查CNAME完整链。别名本身已更新,不代表最终目标的A/AAAA已更新;CDN提供商的解析层也可能决定最终地址。
  4. 检查负缓存。域名此前不存在时,递归DNS可能缓存NXDOMAIN。其时长与区域SOA相关,本机刷新同样无法清掉远端负缓存。

只有权威答案已经正确,“等待缓存”才有意义。若权威服务器仍返回旧IP,等待再久也不会自动切换。

比较不同递归DNS时要记录服务器

用运营商默认DNS和一到两个公共递归DNS分别查询,记录查询时间、服务器地址、返回记录和剩余TTL。不同递归结果短时间并存,是DNS缓存机制下可能出现的正常过渡;如果超过原TTL仍持续错误,就需要检查权威同步、DNS转发链或服务商异常。

不要只把多地工具上的城市名称截图下来。应确认工具查询的是哪个递归服务、是否使用IPv4或IPv6、是否跟随CNAME,以及结果是不是缓存。相关入口可以从极跃圈网址导航查找。

解析已经是新IP,页面为什么还像旧站

浏览器仍在复用旧连接

HTTP/2和HTTP/3允许一条连接承载多个请求。DNS变化后,现有标签页可能继续沿用已经连接的旧服务器。完全退出浏览器进程、重新打开后再查开发者工具里的远程地址,比只按F5更有价值。

CDN缓存还没有刷新

DNS已经把用户送到新CDN节点,但该节点的页面缓存仍是旧内容。DNS TTL与HTTP缓存时间是两套机制。此时要查CDN缓存命中状态、缓存键、刷新记录和回源地址。

新服务器部署了旧内容

迁移时文件、数据库、对象缓存或应用配置没有同步,访问新IP也会呈现旧页面。给新旧环境加一个内部可见的版本号,并核对两边访问日志,能比肉眼看首页更快区分。

IPv4与IPv6切到了不同服务器

A记录已经更新,AAAA仍指向旧环境时,双栈客户端可能优先访问IPv6。查询和日志都要同时检查两种地址。暂时删除AAAA之前应评估业务影响,不能把IPv6问题简单掩盖掉。

一条完整的诊断链

  1. 记录当前NS并直接查询所有权威服务器;
  2. 比较两个递归DNS的A、AAAA、CNAME和剩余TTL;
  3. 清理操作系统缓存并彻底退出浏览器;
  4. 用开发者工具或 curl确认实际连接IP、TLS证书、状态码和响应头;
  5. 查看新旧服务器及CDN日志,确认请求最终落点;
  6. 在迁移窗口内保留旧服务器,直到旧TTL和业务观察期结束。

不要通过反复重启路由器、频繁切换DNS来掩盖证据。把权威答案、递归答案、客户端解析、实际连接地址和服务器日志按时间排好,就能确定旧IP停留在哪一层。

常见问题(FAQ)

ipconfig /flushdns能清除所有DNS缓存吗?
只能清理Windows本地解析缓存,不能清理递归DNS、浏览器或CDN缓存。
TTL为300就一定5分钟全网生效吗?
不一定,旧记录的TTL、异常缓存和不同解析链路都会影响。
怎样确认权威DNS已经更新?
直接查询域名的权威DNS服务器,并对比多个递归DNS结果。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600