更新答案

更新答案

我在用着主机块和...一起域名系统在 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,请按照edvinas.me回答。

对于当前版本的 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. 单击“Under the Hood”选项卡。

    3. 在“隐私”部分下,取消勾选使用 DNS 预取来提高页面加载性能的复选框。

    4.单击“关闭”按钮。

    5.刷新以重新加载网页。

答案3

另一个不太明显的可能性是,您的系统设置为使用自动代理 *.pac 文件。如果您在公司环境中使用计算机,并且 *.pac 文件告诉您的浏览器通过代理来解析 URL,通常就会出现这种情况。这优先于您的 /etc/hosts 文件,并且如果 *.pac 文件中有一条规则,即如果没有匹配项则返回 PROXY,那么 Chrome 似乎没有遵守 /etc/hosts。如果您的命令行按预期工作,例如 dig、ping 等,通常就会出现这种情况。

如果您尝试了其他解决方案但它们不起作用,请检查您是否没有使用 Chrome 正在使用的自动代理设置。

答案4

如果你正在使用任何VPN 代理扩展对于 Google Chrome(例如更好的网络),您可能会遇到此问题。禁用扩展程序可解决问题。

相关内容