清除Linux中的DNS緩存

清除Linux中的DNS緩存

我在筆記型電腦上使用 Linux,無法使用該 URL 訪問特定網站,因此我使用該sudo /etc/init.d/nscd restartURL 來清除 DNS 緩存,但該 URL 在 Firefox 中仍然拋出「找不到伺服器」。我也嘗試過 Chrome,但仍然無法正常工作。其他朋友可以看到網頁,但我看不到。那麼造成這種情況的主要原因是什麼呢?我可以很好地瀏覽其他網站。

奇怪的是,當我嘗試該特定 URL 的 IP 位址時,它顯示的頁面與其他人看到的頁面不同。

我很感謝對此事的任何幫助。

答案1

bind除非您意外運行,否則您應該檢查nscd位於 的設定檔/etc/nscd.conf

它將列出保留的快取。

 enable-cache            hosts           yes
 positive-time-to-live   hosts           3600
 .......

# nscd -?

-g, --statistics Print current configuration statistics

-i, --invalidate=TABLE Invalidate the specified cache

nscd -g

    hosts cache:

        yes  cache is enabled
         no  cache is persistent
        yes  cache is shared
        211  suggested size
     216064  total data pool size
        384  used data pool size
        600  seconds time to live for positive entries
          0  seconds time to live for negative entries
          0  cache hits on positive entries
          0  cache hits on negative entries
        128  cache misses on positive entries
          0  cache misses on negative entries
          0% cache hit rate
          3  current number of cached values
          7  maximum number of cached values
          2  maximum chain length searched
          0  number of delays on rdlock
          0  number of delays on wrlock
          0  memory allocations failed
        yes  check /etc/{hosts,resolv.conf} for changes

# nscd -i hosts

這將使緩存失效。

nscd -g 但是,執行此操作後,重新啟動後nscd刷新中的主機條目沒有變更。

service nscd restart

    hosts cache:

        yes  cache is enabled
         no  cache is persistent
        yes  cache is shared
        211  suggested size
     216064  total data pool size
          0  used data pool size
        600  seconds time to live for positive entries
          0  seconds time to live for negative entries
          0  cache hits on positive entries
          0  cache hits on negative entries
          0  cache misses on positive entries
          0  cache misses on negative entries
          0% cache hit rate
          0  current number of cached values
          0  maximum number of cached values
          0  maximum chain length searched
          0  number of delays on rdlock
          0  number of delays on wrlock
          0  memory allocations failed
        yes  check /etc/{hosts,resolv.conf} for changes

除非您正在執行綁定,否則這是清除快取的唯一方法,無法找到資料庫nscd並刪除它,這可能會導致其他問題。我會按照 IP 解析的故障排除程序進行操作。我在你的問題的評論中概述了一些內容。

這是一篇非常好的 Linux Journal 文章的鏈接排除網路問題

答案2

我知道這是一個老問題,但添加這個以防有人再次面臨這個問題。

今天早上,當我遇到類似的 DNS 用戶端快取問題時,我執行了所有常規步驟來清除儲存的緩存,nscd並如第一個答案所述,重新啟動nscd。我甚至刪除了作業系統緩存,但某個主機名稱仍然解析為舊的 IP 位址。僅在我nameserver 127.0.0.1從 resolv.conf 中刪除該行後,它才開始解析。

相關內容