清除 Public DNS 服務快取的管道

當 DNS 紀錄有更動的時候,為了盡快看到並確認結果,我們會想要在紀錄的存活時間 (TTL, Time To Live) 到期之前就手動清除瀏覽器或是系統上的 DNS 紀錄快取資料 (例如像 Flush local DNS cache on a browser and local system 這邊有紀錄了幾個常用的方式),但這僅限於我們手邊的裝置,如果 DNS 伺服器上面的紀錄仍然是被快取過的結果,清除本機的快取可能就派不上用場了。

如果想要清除 DNS 伺服器上的快取紀錄該怎麼做呢?如果是自己管理的 DNS 伺服器,可以透過重新啟動服務等方式清除快取,但如果不是自己管理的伺服器應該怎麼辦呢?

例如,自己手上管理的某套服務剛做完 DNS 紀錄變更,我希望使用者也能盡快拿到最新的結果,而不是查詢到被快取在伺服器上面的舊版紀錄,但是大多數的使用者使用的肯定都不是我管理的 DNS,也就是不在我的控制範圍內,比較常見的狀況可能是使用 ISP 預設提供的 DNS 服務,或是其他大型企業提供的 Public DNS 服務 (例如:常用 Public DNS resolver 清單整理 這邊鎖整理),這時候要怎麼做才可以讓使用者更快取得新的 DNS 紀錄而不必等到 TTL 都到期呢?

Google Public DNSCloudflare 1.1.1.1 兩家知名的 Public DNS 服務就有對外提供 Flush Cache / Purge Cache 的功能,界面都相當簡潔,只要輸入對應的網域名稱 (Domain name) 、資源紀錄類型 (Record type),就可以很方便、快速的清除快取紀錄,讓最新的設定能盡快生效,他們的網址分別是:

Google Public DNS 的 Flush Cache 界面
Google Public DNS 的 Flush Cache 界面
閱讀全文

Common IPv6 public DNS resolver list

There are only a few IPv6 public DNS servers for worldwide/global services currently (Not as many as IPv4 public DNS resolvers).

Cloudflare:

  • 2606:4700:4700::1111
  • 2606:4700:4700::1001

Google Public DNS :

  • 2001:4860:4860::8888
  • 2001:4860:4860::8844

OpenDNS:

  • 2620:0:ccc::2
  • 2620:0:ccd::2

Quad9:

  • 2620:fe::fe
  • 2620:fe::9

CleanBrowsing:

  • 2a0d:2a00:1::2
  • 2a0d:2a00:2::2

Neustar:

  • 2610:a1:1018::5
  • 2610:a1:1019::5

OpenNIC (http://servers.opennicproject.org / http://servers.opennicproject.org/?tier=2):

  • 2001:470:f032:10:0:100:53:10
  • 2001:470:8269::53
  • 2a01:4f8:101:3062::5:2

You can visited: https://www.opennicproject.org/nearest-servers/ to get the closest OpenNIC DNS servers.

Yandex.DNS:

  • 2a02:6b8::feed:0ff
  • 2a02:6b8:0:1::feed:0ff

You are welcome to comment more :)

一些安裝完系統後要做的一些設定

ntp server:
現在比較少看到學校單位自己在架ntp server了,至於要設定ntp校時伺服器的原因,原因很簡單,系統上錯誤的時間會產生的問題不少,小則查log的時候讓時間參考依據降低、大則讓你失約、線上搶購搶不到、甚至連網站都不能上(因為SSL憑證是要看日期的),而ntp server設的不好結果就是時間誤差大、查詢費時、或查不到東西,之前有整理過列表,可以參考下面這篇 – 台灣合用的ntp server,Windows內建的設定是time.windows.com,就是屬於很不好用的那種 … 強烈建議換掉,在系統時間設定裡面有選項,參考話面如下:
windowsNtp

dns server:
公司企業或是學校單位基本上都還是會有自己的dns,若非品質或速度有嚴重問題,建議以local的為主就可以了,之前有做過測試,想要自己測試也可以參考這邊做法 – 用Google的Public DNS上網會變快?Google的DNS真的比較快嗎?之常用DNS測試,因為dns實際上花費時間還要加上query的時間,有些人直接用ping值來當作dns的速度參考其實不太恰當 … 另外之錢也整理過一些列表: – 台灣ISP常用DNS列表整理常用 Public DNS 清單整理 (IPv4)

Windows WSUS / Linux/FreeBSD mirror:
Linux或BSD的套件或source來源mirror是一定要的,不用多解釋 … 而Windows上也有一種機制叫做WSUS – Windows Server Update Services,在做的就是類似的事情,對於企業或是學校環境來講可以省下非常可觀的頻寬跟時間花費

Windows 系統還原停用:
很多人不知道Windows有這功能,知道也不太會用,如果是這樣不如把這功能關掉,因為在背景自動備份吃的資源不是很划算,而真的中毒或系統損毀通常靠這功能是救不回來的 …

至於系統更新還有Windows需要的方毒軟體應該不用多解釋了,剩下想到再補XD

Flush local DNS cache on a browser and local system

Browser(application) level:

For Google Chrome/Chromium, open the link below:
chrome://net-internals/#dns
and click “Clear host cache

For Firefox, open the link below:
about:config
then click “I’ll be careful, I promise!“,
and find network.dnsCacheExpiration, set its value to 0 (create one if it didn’t exist).
Now the cache should be flushed, and set network.dnsCacheExpiration back to 3600, or you the cache will not work at all.

Operating system level:

  • Windows:
    • ipconfig /flushdns
  • Linux:
    Depends on the dns service you are using:
    • sudo systemd-resolve --flush-caches
    • sudo /etc/init.d/dns-clean restart
    • sudo /etc/init.d/nscd restart
    • sudo /etc/init.d/dnsmasq restart
    • sudo /etc/init.d/named restart
  • macOS (> v10.5):
    • dscacheutil -flushcache