DNS
清除 Mac 上的 DNS 快取
macOS 會把 DNS 回應保留一段時間。清除後,下一次查詢會重新詢問 DNS 伺服器。
症狀
- 網站已搬到新伺服器,但 Mac 仍然連到舊位址。
/etc/hosts或 DNS 記錄的變更沒有生效。- 網路恢復後,「找不到伺服器」錯誤仍然存在。
可能原因
- 快取的回應。mDNSResponder 會快取 DNS 回應,其中可能有已經不正確的回應。
- 瀏覽器快取。有些瀏覽器有自己的 DNS 快取,macOS 的清除不會清掉它。
- DNS 伺服器快取。路由器或網路供應商也會保留回應,在 Mac 上清除不會清掉它們。
如何檢查
向 macOS 解析器查詢該名稱,將位址與你預期的位址比較。
dscacheutil -q host -a name example.com顯示 macOS 使用的 DNS 伺服器。
scutil --dns
如何修正
打開「終端機」,清除目錄服務快取。
sudo dscacheutil -flushcache需要管理者密碼。
讓 mDNSResponder 清除它的快取。Apple 針對 OS X 10.10.4 及以後版本提供這個指令。
sudo killall -HUP mDNSResponder需要管理者密碼。
「終端機」要求時輸入你的密碼。指令成功時不會顯示任何訊息。
結束瀏覽器再重新打開,讓它不再使用自己的舊回應。
再查詢一次名稱。如果還是舊位址,就是 DNS 伺服器還保留著它。
使用 Kilobat
CLI 執行的是同樣的兩個指令。macOS 會要求輸入管理者密碼。
kilobat dns flush在 App 中打開「健康狀態」標籤頁,然後按一下 DNS 面板中的「清除快取⋯」。
MCP 工具
set_dns在provider設為flush時效果相同。它會要求 AI 代理程式先詢問你。
常見問題
清除快取會讓 DNS 變快嗎?
不會。它只是移除舊的回應。接下來的查詢會重新送到 DNS 伺服器,所以可能稍微慢一點。
清除 DNS 快取安全嗎?
安全。App 查詢名稱時,macOS 會重新填入快取。dscacheutil 的 man 手冊頁建議只在必要時才使用它的清除功能。
需要重新啟動 Mac 嗎?
不需要。指令會立即生效。
資料來源
- Apple 支援(已封存):在 OS X 中重置 DNS 快取
- dscacheutil(1),macOS 27.2 內建的 man 頁面
- mDNSResponder(8),macOS 27.2 內建的 man 手冊頁
資料來源檢查日期:2026年10月29日。man 頁面為 macOS 內建版本;在終端機中用 man <name> 開啟。