
我在用著主機區塊和...一起網域解析在 Arch Linux 上阻止一些網站,其中之一是facebook.com
和www.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 版),您應該執行以下操作:
- 去
chrome://settings
- 點選“顯示進階設定...”
- 取消標記預測網路操作以提高頁面載入效能盒子。
- 透過前往 檢查 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)
要禁用它:
點擊“工具”選單(一個小扳手圖示),然後轉到“選項”。
按一下“底層”標籤。
3.在「隱私權」部分下,取消勾選「使用 DNS 預取來提高頁面載入效能」複選框。
4.點選“關閉”按鈕。
5.刷新以重新載入網頁。
答案3
另一個不太明顯的可能性是您的系統設定為使用自動代理 *.pac 檔案。如果您在公司環境中獲得了一台計算機,並且 *.pac 檔案告訴您的瀏覽器透過代理來解析 URL,通常會發生這種情況。這優先於您的 /etc/hosts 文件,如果 *.pac 文件中有一條規則,即在沒有匹配項的情況下返回 PROXY,那麼 Chrome 就會出現不遵守 /etc/hosts 的情況。如果您的命令列按預期工作(例如 dig、ping 等),通常會出現這種情況。
如果您嘗試了其他解決方案但它們不起作用,請檢查您是否沒有 Chrome 使用的自動代理設定。
答案4
如果您正在使用任何VPN 代理擴展對於谷歌瀏覽器(例如貝特網),您可能會遇到這個問題。禁用擴充可以解決該問題。