为什么Chromium绕过/ etc / hosts和dnsmasq?


51

我在Arch Linux上结合使用hostblockdnsmasq来阻止某些网站,其中之一是facebook.comwww.facebook.com

我知道一切工作正常,因为对facebook.com(或www.facebook.com)的简单ping 返回127.0.0.1。另外,如果我从Midori访问这些网站,则会返回空白页(这是预期的行为,因为我一直在使用kwakd守护程序在本地主机上返回空白页)。

只有Chromium似乎绕过了我的阻止列表。从它访问facebook.com使我直接进入facebook主页。

从开始清理完所有内容(Ctrl + Shift + Delete)并重新启动Chromium之后,我得到了所需的行为(=无法访问Facebook)。

尽管过了一会儿(我不确定是什么原因造成的),但Chromium再次忽略了我的本地dnsmasq DNS,并成功访问了Facebook主页。

我读到了有关Chromium的DNS查询的缓存和预取的内容,但是我不确定如何禁用它。

问题是:为什么Chromium绕过我的本地DNS,我该怎么做才能阻止它?


2
您是否使用了代理?使用代理时,将在代理上执行DNS请求。
Zoredache 2014年

不,我没有使用任何代理,hostsblock不需要一个。
thiagowfx

我尝试了以下答案的方法,但是Chromium仍会以某种方式获取IP地址…Chromium中是否有一些固定的地址?
Geremia

Answers:


41

关于该主题的大多数参考文献都是陈旧的。如果您使用的是旧版的Chromium,请遵循edvinas.me的答案。

对于当前版本的Chromium(撰写本文时:33rd),应执行以下操作:

  1. chrome://settings
  2. 点击“显示高级设置...”
  3. 取消选中“ 预测网络操作以改善页面加载性能”框。
  4. 通过转到检查DNS预取是否真的被禁用chrome://dns。您应该看到类似DNS预解析和TCP预连接的功能。如果未禁用预取,则将在其中看到一些表。

更新资料

对于较新版本的Chrome(此更新时为第55版),第三个项目的措辞为:使用预测服务更快地加载页面

参考


27

更新的答案

确保您清理了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英镑 ‬刷新以重新加载网页。


1
您所说的内容仅适用于Chromium / Google Chrome的旧版本。较新的版本不再具有此设置(“高级功能”都没有)。也许新设置是“预测网络操作以提高页面加载性能”?可悲的是,这没有提到任何DNS,所以我不确定。
thiagowfx

我已经更新了有关如何清除Chromium的DNS缓存的答案。请看看,希望对您有所帮助。
2014年

谢谢!您的新答案是清除记录的DNS的最佳方法(而不是像Ctrl + Shift + Delete那样清除所有内容)。但是,要永久摆脱该问题,我认为我自己的答案更合适(为了确定,我仍然需要多做一些测试)。
thiagowfx 2014年

好吧,如果您只是禁用该功能而不清除缓存-直到缓存过期,它才起作用。清除缓存后,我认为Chromium不应该能够以某种方式预取真实IP。即使启用了预取,它也会预取被阻止的值。无论如何,至少看来您已经解决了它。
2014年

2
“ chrome:// net-internals /#dns”->清除,不起作用。
Totty.js

2

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

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


1
这对我有用!
MediumOne

-2

如果您对Google Chrome 使用任何VPN代理扩展(例如Betternet),则可能会遇到此问题。禁用扩展可解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.