DNS
Mac 上 DNS 慢
每个新网站在加载前都需要一次 DNS 查询。即使网速很快,慢的解析器也会让每个页面开始加载前多一段延迟。
症状
- 页面要等几秒钟,然后很快加载完成。
- 第一次访问某个网站很慢,第二次就很快。
- 速度测试结果不错,但浏览网页感觉很慢。
可能的原因
- DNS 服务器慢或繁忙。路由器或网络服务商的 DNS 服务器响应缓慢。
- DNS 服务器没有响应。如果第一个服务器超时,解析器会尝试下一个。每次超时都会增加延迟。
- 搜索域太多。对于短名称,解析器会依次尝试每个搜索域。服务器离得远时,这会很慢。
- 路径上有 VPN 或过滤器。VPN 可能会把所有 DNS 查询通过隧道发送到很远的服务器。
如何检查
显示 macOS 使用的 DNS 服务器和搜索域。
scutil --dns通过 macOS 解析器测量一次查询,做两次。第二次的结果可能来自缓存。
time dscacheutil -q host -a name example.org查找你不需要的搜索域。
networksetup -getsearchdomains Wi-Fi
如何修复
移除没有响应的 DNS 服务器。选取苹果菜单 >“系统设置”>“网络”。
点按网络服务,点按“详细信息”,然后点按“DNS”。移除没有响应的服务器。
要使用其他 DNS 服务器,点按“DNS 服务器”列表下方的添加按钮,然后输入 IP 地址。
移除你不需要的搜索域。使用“搜索域”列表下方的移除按钮。
如果路由器的 DNS 对所有设备都慢,就重启路由器。
如果没有任何改善,就撤销你的更改。“DNS 服务器”列表为空时,会重新使用网络提供的服务器。
使用 Kilobat
将系统解析器与 Cloudflare、Google 和 Quad9 比较。在做决定之前运行两次。
kilobat dns-benchmark输出每个解析器一条记录,包含
resolver、milliseconds以及 3 次中的replies。把一个慢网站拆分为 DNS、连接、TLS 和首字节几个阶段。
kilobat http-check https://example.org --json用 CLI 更改 DNS。macOS 会要求输入管理员密码。使用
automatic恢复。kilobat dns cloudflareCLI 是免费的。在 App 中,切换 DNS 属于 Pro 功能,“自动”保持免费。请参阅挑选更快的 DNS。
常见问题
公共 DNS 服务器一定更快吗?
不一定。离你近的解析器可能更快。更改之前,先测量系统解析器和公共解析器。
清除 DNS 缓存会让 DNS 变快吗?
不会。清除只是删掉旧的结果,之后的查询必须重新发往服务器。
参考资料
- Apple 支持:在 Mac 上更改 DNS 设置
- resolver(5),macOS 27.2 自带的 man 手册页
- scutil(8),macOS 27.2 自带的 man 手册页
- networksetup(8),macOS 27.2 自带的 man 手册页
参考资料核查于 2026年10月29日。man 手册页为 macOS 自带版本;在“终端”中用 man <name> 打开。