為什麼需要管理 DNS 快取?
Windows 2000+ 預設啟動 DNS Client 服務,本地快取查詢結果。修改 DNS 記錄後,用戶端仍解析舊 IP → 存取失敗。掌握快取清除與伺服器端 Scavenging 是運維基本功。
用戶端快取操作
1. 手動清除 (即時生效)
ipconfig /flushdns
配合 ipconfig /displaydns | more 可檢視目前快取內容。
2. 停用 DNS Client 服務 (永久不快取)
services.msc → 找 DNS Client → 停用並設為「手動」或「停用」
- 效果:每次查詢直接發送至 DNS 伺服器,無本地快取
- 代價:查詢延遲微增、DNS 流量增加
3. 瀏覽器層級快取
IE/Edge/Chrome 另維護自身 DNS 快取:
- 關閉瀏覽器 → 清除歷程記錄 → 重新開啟
- Chrome:
chrome://net-internals/#dns → "Clear host cache"
伺服器端:Scavenging (清除過時記錄) 完整配置
啟用條件
- 區域類型為 主要區域 且已啟用 動態更新
- 適用 DHCP 環境:用戶端 IP 變更後自動註冊新記錄,舊記錄需自動清除
配置步驟
dnsmgmt.msc → 右鍵區域 → 內容 → 一般 索引標籤 → 存齡
- 勾選 清除過時資源記錄
- 設定兩個關鍵間隔(預設均 7 天,建議依環境調整):
- 無重新整理間隔:記錄建立後禁止重新整理的時間(防止頻繁寫入)
- 重新整理間隔:允許用戶端重新整理記錄的時間窗口
- 記錄壽命 = 無重新整理間隔 + 重新整理間隔。超過壽命且無重新整理 → 成為「過時記錄」被 Scavenging 清除
伺服器層級統一啟用
右鍵伺服器名稱 → 為所有區域設定存齡/清除 → 同樣參數 → 套用至現有/未來所有區域。
進階:Ipconfig 觀測與管理解析器快取
# 顯示完整快取 (含 TTL)
ipconfig /displaydns
# 清除快取
ipconfig /flushdns
# 註冊/重新註冊本機 A/PTR 記錄
ipconfig /registerdns
群組原則物件 (GPO) 委派管理
跨部門/區域授權特定管理員管理特定 OU/網域的 DNS 原則:
dsa.msc (Active Directory 使用者與電腦)
- 右鍵目標 OU → 內容 → 群組原則 索引標籤
- 選 GPO → 內容 → 安全性 → 新增受委派群組/使用者 → 勾選 允許:讀取、寫入
✅ 最佳實務:
1. 內網用戶端保留 DNS Client 服務,依賴 ipconfig /flushdns 手動/腳本清除
2. 所有動態更新區域**必須啟用 Scavenging**,防止僵屍記錄累積導致區域傳輸效能下降、舊記錄衝突
3. 記錄 TTL 設定 1-4 小時,平衡快取效益與變更傳播速度