当域名缓存没办法得到及时更新的时候, 这经常会导致大家发现新发布的解析记录没有生效。DNS这个缓存它是分布在浏览器、操作系统、路由器(光猫)这一共三个层级的地方的。

大家需要按照正确的顺序去清除它, 这个顺序就是先清浏览器, 再清系统, 最后清路由器。你要是按照下面这种分层的步骤来进行操作的话, 在几分钟之内就可以把整个链条上的缓存都刷新的。

浏览器层面(清除频率最高)

Chrome / Edge:地址栏输入 chrome://net-internals/#dns(Edge 对应 edge://net-internals/#dns),点击 Clear host cache;再访问 chrome://net-internals/#sockets域名缓存清除技巧,点击 Flush socket pools。

Firefox:地址栏输入 about:networking/dns,点击 Clear cache。

Safari(macOS): 使用Cmd + Option + R这个快捷键, 可以强制刷新页面;或者进入“系统设置”菜单, 再找到“网络”选项, “DNS”选项, 然后把它里面已经缓存的那些记录给删除掉。

操作系统层面

Windows:

1. 请选择让程序以具有最高管理权限的方式运行, 然后在系统里找到并打开那个用于输入命令的命令行工具, 或者是打开那个功能更为强大的、带有脚本编写能力的命令行处理程序。

2. 执行 ipconfig /flushdns

3. ipconfig /release 然后是 ipconfig /renew, 也就是把 IP 给释放掉, 然后再重新获取一遍。

macOS:

1. 现在就把那个叫作的程序给打开。

2. 在命令行里输入sudo, 然后接着输入dscacheutil- flushcache。

3. sudo killall -HUP mDNSResponder

Linux(systemd-resolved / nscd / dnsmasq):

sudo systemctl restart systemd-resolved

若使用 dnsmasq:sudo systemctl restart dnsmasq

域名缓存清除技巧:浏览器、系统、路由器三层DNS怎么刷新(图1)

路由器 / 光猫层面(最易被忽略)

多数家用路由器里面都带着DNS缓存功能, 默认的TTL时长是在600秒到3600秒这样一个范围里。具体的清除方法如下:

登录到管理页面, 这个页面的网址通常是 192.168.1.1 或者 192.168.0.1。接着,找到标有“LAN 设置”和“DNS 设置”的选项。然后, 在该页面中重启 DNS 服务。或者, 你也可以选择保存一次配置设置, 以此来触发刷新操作。

最简单的办法是先把电源断开, 等待10秒之后再把电源接通, 然后耐心等待2分钟, 以便让相关服务恢复正常。

在像OpenWrt这类开源固件的环境里, 你先通过SSH进行登录, 然后在你的设备上执行/etc/init.d/dnsmasq restart这个操作。

本地 Hosts 文件排查

如果前面说的这几个办法都不管用, 那就去检查一下看看, 之前有没有自己动手往里面写入过映射的内容。

Windows:C:\Windows\System32\drivers\etc\hosts

在 macOS 或者 Linux 的系统中, 我们可以使用/etc/hosts。

我们需要把对应的那个域名的行给删除掉, 就像是之前曾经把 gname.xin 这个域名指向了旧的IP地址的那些记录一样, 然后在保存完成之后, 再去重新执行第二步里面的系统 DNS 刷新操作即可。

高频疑难速查

邢台市重点项目建设促进中心

现象 原因 解决
仅一台电脑不更新 该设备浏览器或系统缓存未清 按第一、二步操作
所有设备都不更新 路由器 DNS 缓存或 ISP 上游 DNS 缓存 重启路由器;临时将系统 DNS 改为 223.5.5.5 或 114.114.114.114
清除后几分钟又"回旧值" 运营商 DNS 节点 TTL 较长 更换公共 DNS域名缓存清除技巧,或等待 TTL 自然过期(通常 600 s~86400 s)
刚改 A 记录仍未生效 DNS 记录全球传播有延迟 用 dig、DNSChecker 分区域查询确认

验证是否清除成功

在Windows系统里面, 你可以用nslookup yourdomain.com这个命令, 然后去看看它返回的结果是不是那个新IP。

macOS / Linux:dig yourdomain.com

浏览器:访问 https://dnsleaktest.com,确认出口 DNS 与解析结果一致

在完成上述的所有步骤之后, 域名的缓存就完成从端到端的彻底清除工作了, 这时候新的解析记录就可以正常地生效了。