更新答案

更新答案

我在用著主機區塊和...一起網域解析在 Arch Linux 上阻止一些網站,其中之一是facebook.comwww.facebook.com

我知道一切正常,因為簡單的 ping facebook.com(或www.facebook.com) 返回 127.0.0.1。另外,如果我從 Midori 訪問這些網站,則會返回一個空白頁面(這是預期的行為,因為我正在使用夸克德守護程式返回本機上的空白頁)。

只有 Chromium 似乎可以繞過我的黑名單。從它訪問 facebook.com 讓我直接進入 Facebook 主頁。

在清理自開始以來的所有內容(Ctrl+Shift+Delete)並重新啟動 Chromium 後,我得到了所需的行為(= 無法訪問 Facebook)。

雖然,過了一段時間(我不太確定是什麼原因導致這個問題),Chromium 再次忽略我的本地 dnsmasq DNS 並成功訪問 facebook 主頁。

我讀過一些關於 Chromium DNS 查詢的快取和預取的內容,但我不知道如何停用它。

問題是:為什麼 Chromium 繞過我的本地 DNS,我可以採取什麼措施來阻止它?

答案1

關於這個主題的大多數參考文獻都是舊的。如果您有舊版的 Chromium,請依照艾德維納斯我回答。

對於目前版本的 Chromium(撰寫本文時:第 33 版),您應該執行以下操作:

  1. chrome://settings
  2. 點選“顯示進階設定...”
  3. 取消標記預測網路操作以提高頁面載入效能盒子。
  4. 透過前往 檢查 DNS 預取是否確實已停用chrome://dns。你應該會看到類似的東西DNS預解析和TCP預連線已停用。如果未停用預取,您將在那裡看到一些表。

更新

對於較新版本的 Chrome(本更新時:第 55 版),第三項的措詞為:使用預測服務更快載入頁面

參考

答案2

更新答案

確保清理 Chrome 的快取。在網址列中輸入:

chrome://net-internals/#dns

然後點擊Clear host cache按鈕。

舊答案

Chromium 預設使用 Google 的內部 DNS(8.8.8.8 和 8.8.4.4)

要禁用它:

  1. 點擊“工具”選單(一個小扳手圖示),然後轉到“選項”。

  2. 按一下“底層”標籤。

    3.在「隱私權」部分下,取消勾選「使用 DNS 預取來提高頁面載入效能」複選框。

    4.點選“關閉”按鈕。

    5.刷新以重新載入網頁。

答案3

另一個不太明顯的可能性是您的系統設定為使用自動代理 *.pac 檔案。如果您在公司環境中獲得了一台計算機,並且 *.pac 檔案告訴您的瀏覽器透過代理來解析 URL,通常會發生這種情況。這優先於您的 /etc/hosts 文件,如果 *.pac 文件中有一條規則,即在沒有匹配項的情況下返回 PROXY,那麼 Chrome 就會出現不遵守 /etc/hosts 的情況。如果您的命令列按預期工作(例如 dig、ping 等),通常會出現這種情況。

如果您嘗試了其他解決方案但它們不起作用,請檢查您是否沒有 Chrome 使用的自動代理設定。

答案4

如果您正在使用任何VPN 代理擴展對於谷歌瀏覽器(例如貝特網),您可能會遇到這個問題。禁用擴充可以解決該問題。

相關內容