DNS

Mac 上 DNS 慢

每个新网站在加载前都需要一次 DNS 查询。即使网速很快,慢的解析器也会让每个页面开始加载前多一段延迟。

适用于:“系统设置”步骤适用于 macOS 13 Ventura 及更高版本。“终端”命令适用于所有当前 macOS 版本。核查日期:2026年10月29日

症状

  • 页面要等几秒钟,然后很快加载完成。
  • 第一次访问某个网站很慢,第二次就很快。
  • 速度测试结果不错,但浏览网页感觉很慢。

可能的原因

  • DNS 服务器慢或繁忙。路由器或网络服务商的 DNS 服务器响应缓慢。
  • DNS 服务器没有响应。如果第一个服务器超时,解析器会尝试下一个。每次超时都会增加延迟。
  • 搜索域太多。对于短名称,解析器会依次尝试每个搜索域。服务器离得远时,这会很慢。
  • 路径上有 VPN 或过滤器。VPN 可能会把所有 DNS 查询通过隧道发送到很远的服务器。

如何检查

  1. 显示 macOS 使用的 DNS 服务器和搜索域。

    scutil --dns
  2. 通过 macOS 解析器测量一次查询,做两次。第二次的结果可能来自缓存。

    time dscacheutil -q host -a name example.org
  3. 查找你不需要的搜索域。

    networksetup -getsearchdomains Wi-Fi

如何修复

  1. 移除没有响应的 DNS 服务器。选取苹果菜单 >“系统设置”>“网络”。

  2. 点按网络服务,点按“详细信息”,然后点按“DNS”。移除没有响应的服务器。

  3. 要使用其他 DNS 服务器,点按“DNS 服务器”列表下方的添加按钮,然后输入 IP 地址。

  4. 移除你不需要的搜索域。使用“搜索域”列表下方的移除按钮。

  5. 如果路由器的 DNS 对所有设备都慢,就重启路由器。

  6. 如果没有任何改善,就撤销你的更改。“DNS 服务器”列表为空时,会重新使用网络提供的服务器。

使用 Kilobat

  1. 将系统解析器与 Cloudflare、Google 和 Quad9 比较。在做决定之前运行两次。

    kilobat dns-benchmark

    输出每个解析器一条记录,包含 resolver、milliseconds 以及 3 次中的 replies。

  2. 把一个慢网站拆分为 DNS、连接、TLS 和首字节几个阶段。

    kilobat http-check https://example.org --json
  3. 用 CLI 更改 DNS。macOS 会要求输入管理员密码。使用 automatic 恢复。

    kilobat dns cloudflare
  4. CLI 是免费的。在 App 中,切换 DNS 属于 Pro 功能,“自动”保持免费。请参阅挑选更快的 DNS。

常见问题

公共 DNS 服务器一定更快吗?

不一定。离你近的解析器可能更快。更改之前,先测量系统解析器和公共解析器。

清除 DNS 缓存会让 DNS 变快吗?

不会。清除只是删掉旧的结果,之后的查询必须重新发往服务器。

参考资料

参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本;在“终端”中用 man <name> 打开。