浏览器打开 Google.com 中涉及的 DNS 查找

缓存无处不在。

DNS 查询路径

  1. 从浏览起缓存里找。
  2. 从系统缓存里找。
  3. 从系统 Host 里找。
  4. 从系统配置的 DNS 服务器缓存找。
    1. 使用路由器提供的公共 DNS。
    2. 使用用户自己修改的公共 DNS。
    3. 使用运营商提供的 Local DNS。
  5. 转发 DNS。如果本地缓存没有相应的域名结果,将查询请求转发给另外一台 DNS 服务器。
  6. 递归 DNS。从根域名 “.” 服务器,顶级域名服务器(“.com”),一级域名服务器(“google.com”)等一级一级递归查询,直到最终找到权威服务器取得结果。

浏览器缓存

Firefox(v74.0)

about:config 中的相关设置是 network.dnsCacheEntriesnetwork.dnsCacheExpiration,默认都是 60s。

Chrome(v80.0.3987.149)

关于 Chrome DNS 缓存多久,没有找到具体的来源。这个问题 how-long-google-chrome-and-firefox-cache-dns-records 说是 60s。

chrome://net-internals/#dns 可以清理缓存。

系统缓存

本地系统的缓存通常是 1 小时,根据与 DNS 记录关联的 TTL,本地解析 DNS 服务器的缓存可以运行数天。

Default Time To Live (TTL) values

关于各个系统如何清理 DNS

All rights reserved
Except where otherwise noted, content on this page is copyrighted.