本文參考資料為 How to Flush DNS Cache in Mac OS X, 作者 OS X Daily。
對於系統管理員或網頁開發者來說,在測試或開發階段經常需要清除電腦中暫存 DNS 快取記錄(Flush DNS),尤其在網站搬家、遷移虛擬主機時為了更快對應到新的主機空間也會時常清理快取,或是反覆用於測試某些設定值等等,以前使用 Windows 無論任何版本其實都同一指令 ipconfig /flushdns
,後來移轉到蘋果的 macOS 後就記不起來了,每次都得要上網搜尋才知道該下那個指令。
會這麼說是因為 macOS 在不同版本清除暫存 DNS 快取資料需要使用的指令不太一樣,不過就和 Windows 一樣其實非常簡單,但每個指令在特定 macOS 版本都是獨一無二的,執行操作方式也都相同,無論是 macOS 10.10、10.12 或更新的 10.13 ,如果你仍停留在更早期的 Mac 版本,打開終端機、複製以下對應的指令就能清除暫存的 DNS 快取資料。
要注意的是必須透過終端機(在應用程式 – 工具程式)輸入每一行指令,或者你可以使用其他替代程式,例如:iTerm,在執行指令時可能會要求管理員密碼,如果你發現輸入指令後無法正確執行,請確認一下 macOS 版本只否正確(點選左上角的蘋果 – 關於這台 Mac 就能找到目前的作業系統版本)。
清除 macOS 10.11、10.12 或更新版本 DNS 快取
如果你是使用 Sierra、El Capitan 或更新版本的 macOS 請使用以下指令:
sudo killall -HUP mDNSResponder
清除 OS X 10.10 Yosemite 的 DNS 快取
如果你是使用 Yosemite,在 OS X Yosemite 中的清除 DNS 快取指令又不太一樣,區分為 MDNS 和 UDNS,或使用以下指令合併兩者,你需要的指令如下:
sudo discoveryutil mdnsflushcache;sudo discoveryutil udnsflushcaches;say flushed
清除 OS X 10.9 Mavericks 的 DNS 記錄
在 10.9 清除 DNS 快取的指令如下:
dscacheutil -flushcache;sudo killall -HUP mDNSResponder
你會需要輸入管理員密碼才能完成這個動作。如果你仔細看,它將刪除 mDNSResponder
和標準指令 dscacheutil
合併在一起,使它成為一個連貫動作,先刪除快取、然後在 macOS 中重新載入 DNS,讓變更可以快速生效。
清除 OS X Lion (10.7) 和 OS X Mountain Lion (10.8) DNS 快取
開啟終端機然後輸入以下指令,你一樣會被要求輸入管理員密碼:
sudo killall -HUP mDNSResponder
注意 dscacheutil
仍存在於 10.7 和 10.8,但官方給的清除方法是刪除 mDNSResponder
。你也可以從「活動監視器」找到這個程式。
清除 OS X 10.3 和 10.4 Tiger 的 DNS 快取
在終端機輸入以下指令:
lookupd -flushcache
以上就是 Mac 使用者可能會用到的指令。清除快取後就能取得最新的 DNS 記錄,你可以透過其他網路工具例如 http、ping、nslookup、traceroute、curl 或任何方法來驗證有無生效。