清除DNS 快取記錄
為了提高DNS 解析的記錄,很多作業系統都會提供快取DNS 記錄的功能,但是,這可能會為測試DNS 服務或域名設定帶來麻煩。為了測試出準確的結果,我們需要強制重新整理本地 DNS 快取記錄。這裡提供Windows 與 Linux 客戶端上的操作說明。
一、Windows 客戶端
Windows 2000以上系統,預設自動啟動了DNS Client服務,該服務提供了客戶端的名字解析與快取服務,使用者的DNS查詢結果會在本地得到快取。以下是該服務的描述:
可以通過下面的命令獲得快取中的DNS 結果:
而下面的命令可以強制清除這些DNS 快取:
如果您覺得DNS Client服務帶來麻煩,可以用在控制面板——服務 中停止,或使用下面的命令停止該服務:
重新啟動該服務:
二、Linux 客戶端
以紅旗Asianux 3.0 為例,同樣提供一個叫nscd 的本地DNS 快取的服務。但與Windows 平臺不同的是,該服務預設是關閉的:
nscd 0:關閉 1:關閉 2:關閉 3:關閉 4:關閉 5:關閉 6:關閉
該服務除了提供DNS 快取外,可提供NIS 加速的作用。下面是nscd 的描述:
如果我們要啟用本地DNS 快取,啟動該服務即可:
同樣的,關閉該服務,可以避免DNS 快取帶來的問題:
需要注意的是,該服務沒有提供強制刪除其快取結果的命令。但是,我們可以通過刪除其後臺數據庫記錄資訊,清空這些快取:
# service nscd restart
三、Linux Bind 服務
有時候,我們的客戶端是處於某臺DNS 快取伺服器後面的。常見的情況是,作為NAT 閘道器的Linux 伺服器,通過bind 服務,提供DNS 快取和轉發功能。這可通過配置/etc/named.conf,加入forward來實現:
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
forward only;
forwarders {
202.96.128.86;
202.96.134.133;
};
};
這時,客戶端對外的DNS 解析結果,除保留在客戶端本地的DNS 快取中,同樣會保留在這臺網關伺服器上。還有一種情況就是,當我們修改named 提供的DNS服務時,也需要重新整理快取。
bind 提供的rndc 命令可以清空快取的功能: