---
title: "如何在 Mac 上清除 DNS 缓存（“终端”命令） · Kilobat 指南"
url: "https://kilobat.app/zh-hans/guides/flush-dns-cache-mac.html"
description: "网站迁移后，或“找不到服务器”错误一直存在时，用“终端”清除 macOS 的 DNS 缓存。了解清除缓存什么时候有用、什么时候没用。"
---

DNS

# 在 Mac 上刷新 DNS 缓存

macOS 会将 DNS 应答保留一段时间。清除缓存会删除这些应答，下次查询时会重新询问 DNS 服务器。

适用于：OS X 10.10.4 Yosemite 及更高版本，包括所有当前 macOS 版本。 · 核查日期：2026年10月29日

## 症状

- 网站已迁移到新服务器，但 Mac 仍然访问旧地址。
- 对 `/etc/hosts` 或 DNS 记录的修改没有生效。
- 网络恢复后，“找不到服务器”错误仍然存在。

## 可能的原因

- **缓存的应答。**mDNSResponder 会缓存 DNS 回复，缓存中可能有已经过时的应答。
- **浏览器缓存。**一些浏览器有自己的 DNS 缓存，清除 macOS 缓存不会清除它。
- **DNS 服务器缓存。**路由器或运营商也会缓存应答，在 Mac 上清除缓存不会清除它们。

## 如何检查

1. 向 macOS 解析器查询该名称，把返回的地址与预期地址比较。

   ```
   dscacheutil -q host -a name example.com
   ```
2. 显示 macOS 使用的 DNS 服务器。

   ```
   scutil --dns
   ```

## 如何修复

1. 打开“终端”，清除目录服务缓存。

   ```
   sudo dscacheutil -flushcache
   ```

   需要管理员密码。
2. 让 mDNSResponder 清除其缓存。Apple 为 OS X 10.10.4 及更高版本给出了这条命令。

   ```
   sudo killall -HUP mDNSResponder
   ```

   需要管理员密码。
3. “终端”要求时输入你的密码。命令成功时不会显示任何消息。
4. 退出并重新打开浏览器，让它不再使用自己缓存的旧应答。
5. 再次查询该名称。如果仍返回旧地址，说明 DNS 服务器上还有旧记录。

## 使用 Kilobat

1. CLI 运行的是同样两条命令。macOS 会要求输入管理员密码。

   ```
   kilobat dns flush
   ```
2. 在 App 中打开“健康”标签页，然后在 DNS 面板中点按“清除缓存…”。
3. MCP 工具 `set_dns` 在 `provider` 设为 `flush` 时效果相同。它会让智能体先征求你的同意。

## 常见问题

**清除缓存能让 DNS 更快吗？**

不能。它只是删除旧应答。之后的查询会重新发往 DNS 服务器，所以可能会稍慢一点。

**清除 DNS 缓存安全吗？**

安全。App 查询名称时，macOS 会重新填充缓存。`dscacheutil` 的 man 手册页建议仅在必要时才清除缓存。

**需要重启 Mac 吗？**

不需要。命令会立即生效。

## 参考资料

- [Apple 支持（已归档）：在 OS X 中重设 DNS 缓存](https://support.apple.com/en-us/101481)
- dscacheutil(1)，macOS 27.2 自带的 man 手册页
- mDNSResponder(8)，macOS 27.2 自带的 man 手册页

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

## 相关指南

- [Mac 上 DNS 无法解析](https://kilobat.app/zh-hans/guides/dns-server-not-found.html): DNS 出故障时，Mac 无法把 apple.com 这样的名称转换成 IP 地址。
- [Mac 上修改 /etc/hosts 不生效](https://kilobat.app/zh-hans/guides/hosts-file-not-working.html): /etc/hosts 文件只在这台 Mac 上把名称映射到 IP 地址。
- [Mac 上 DNS 慢](https://kilobat.app/zh-hans/guides/slow-dns-mac.html): 每个新网站在加载前都需要先进行 DNS 查询。
- [Mac 上 Safari 浏览器找不到服务器](https://kilobat.app/zh-hans/guides/safari-cant-find-server.html): “Safari 浏览器找不到服务器”通常表示 Mac 无法获取该网站名称对应的地址。
- [Mac 上的 mDNSResponder 是什么？](https://kilobat.app/zh-hans/guides/what-is-mdnsresponder.html): mDNSResponder 为 Mac 上的所有 App 响应 DNS 查询，并在本地网络中运行 Bonjour。
