您可能知道Google Chrome浏览器具有自己的内部DNS缓存。有没有一种方法可以清除它而不必等待超时或关闭浏览器?

评论

我要刷新Chrome的DNS缓存的唯一原因是,如果不这样做,便无法访问Google。幸运的是,Google并不是唯一的搜索引擎(否则我不会找到这个问题),而且我只需要在工作中使用Chrome。

对我来说,这可能是由于resolv.conf中的DNS服务器不正确引起的。 (我正在尝试访问VPN上的内部服务器)。 T-com的人员错误地配置了DNS以响应其广告站点而不是NXDOMAIN,并且撰写Chrome的人员并不关心遵守resolv.conf命令,而是乐于使用任何看起来有效的DNS服务器。 br />
相关:apple.stackexchange.com/questions/121425/…

#1 楼

导航至chrome:// net-internals /#dns,然后按“清除主机缓存”按钮。

评论


奇怪的是,这仅在一个方向上起作用。我在hosts文件中有一个映射,该映射将域名映射到本地计算机(即127.0.0.1),当我删除映射并刷新Chrome中的DNS缓存时,它可以从Internet正确加载站点,但是当我将映射再次添加到hosts文件,它仍然会从Internet加载网站。清除DNS缓存(也使用ipconfig / flushdns清除了操作系统缓存)后,它在Chrome中显示的缓存的DNS列表为空,但是仍然可以从Internet加载网站!好像是个错误。

– Mee
2010-10-28 2:14

更令人烦恼的是,Chrome浏览器在DNS缓存列表中正确显示了该域的IP地址(127.0.0.1)(刷新并尝试再次加载该站点之后),但仍从Internet加载该站点。

– Mee
2010-10-28 2:15

太棒了,任何人都知道所有chrome:// *选项的列表吗?

–伊恩
11年5月13日在9:18

@伊恩·chrome:// about

–短暂
2011年9月24日18:47

对我来说还不够。必须在命令提示符下找到“ ipconfig / flushdns”(在下面的答案中找到)

–亚当·塔尔(Adam Tal)
2014年5月27日在21:47

#2 楼

有时您需要在刷新DNS后刷新套接字池:

chrome://net-internals/#sockets


评论


请注意,Chrome现在会监视主机文件,并在主机文件发生任何更改时自动清除dnscache。 —您可以通过在hosts文件后添加一个空行来轻松测试该方法是否在您的系统上运行,并且chrome:// net-internals /#dns上的列表将自动更新。— Windows的dnscache服务也将(至少在Win 8.1)监视主机文件的更改,因此在更新主机文件后,只需单击“刷新套接字池”按钮即可。不需要什么了。

–起搏器
15年5月21日在6:02



是的,自1年左右以来,我似乎已经注意到了相同的行为。但是,也许并非一直如此,因为我仍然对此答案表示赞同。

– Bojan Hrnkas
2015年5月21日在6:45

刚刚在Server 2003上进行了测试。每当hosts文件发生任何更改时,dnscache服务都会自动重新加载缓存,而无需ipconfig / flushdns废话。在整个问题中,ipconfig / flushdns似乎都是一个红鲱鱼。

–起搏器
15年7月6日在12:57

即使在cmd中刷新了dns并做了可接受的答案后,也为我工作

–罗伯·斯科特(Rob Scott)
2015年12月3日14:43在

不再有效。

–嬉皮士
18年1月17日在21:33

#3 楼

“导航到chrome:// net-internals /#dns”在Google Chrome浏览器中不起作用,至少在我的系统上不起作用。看起来此解决方案可能适用于Google Chrome操作系统,但更一般地说不适用于Google Chrome浏览器。对我来说,链接重定向到此处:Chromium项目

似乎“清空缓存”是更好的解决方案。另请注意,我的浏览器说的是“首选项”而不是“选项”

通过http://www.google.com/support/forum/p/Chrome/thread?tid=026b6a1d9151a6e3&hl=zh_CN

“转到工具->选项->后台->清除浏览数据并选中“清空缓存”,然后单击清除浏览数据。是的,我知道,这不是DNS缓存,希望它能清除,但是看起来似乎很嘿。现在它对我有用。”

评论


确认这对我有用,清除浏览数据->清空缓存。没有其他方法起作用。谢谢PJ。

–Air
2012年12月29日23:04

当/etc/resolver/foo.com被忽略时,这对铬和铬都有效。

–碎肉
13 Sep 17'3:31



看起来Google正在逐步将名称更改为不同版本的某些内部URL。从27.0.1421.0版(184274)开始...

– DocSalvager
2014年1月16日上午10:25

在打开OpenVPN并因此切换了我的活动DNS服务器之后,至少清除缓存的图像和文件对我不起作用(Ubuntu上为Chromium 33)。 (清除流行的答案中的主机缓存也不起作用。)到目前为止,除了重新启动浏览器或在URL中输入IP地址之外,我没有发现任何有效的方法。

–杰西·格里克(Jesse Glick)
14年4月18日在13:46

清除缓存的图像和文件对我有用!不知道为什么,但是确实如此。 Windows 8.1,铬41.0.2272.89 m

–兵
15年3月29日在18:53

#4 楼

单击chrome://net-internals/#dns中的“清除主机缓存”应该适用于Google Chrome,但您的计算机上还需要考虑其他DNS缓存。

Windows:

ipconfig /flushdns


OS X pre 10.7(在Lion之前):

sudo dscacheutil -flushcache


OS X 10.7–10.9(Lion,Mountain Lion和Mavericks):

sudo killall -HUP mDNSResponder


OS X 10.10+(优胜美地):

sudo discoveryutil mdnsflushcache


OS X 10.11,10.12+(塞拉利昂卡皮坦):

sudo killall -HUP mDNSResponder


您的路由器可能也在缓存DNS(重新启动DNS或阅读手册)。最终测试是使用dig,但这默认情况下使用网络的DNS主机,而不是权威服务器:

dig superuser.com


要从源代码直接查询,请尝试以下方法:

dig superuser.com @ns1.serverfault.com


评论


对我来说,“ sudo Discoveryutil mdnsflushcache”在El Capitan(10.11)上不起作用,但是“ sudo killall -HUP mDNSResponder”起作用了,它说Discoveryutil不存在,也许是Sierra或更高版本?

–以斯拉
16年11月2日,11:41

#5 楼

在带有Chrome 32的OS X 10.9.1中,我需要清除主机缓存并刷新套接字池,以使Chrome刷新DNS缓存:


导航到chrome:// net-internals /#dns并单击“清除主机缓存”

导航到chrome:// net-internals /#sockets abd单击“ Flush Socket Pools”



评论


我在Windows 8.1中也需要它,所以不仅是OSX。

– Benrick
2014年7月14日在2:34

Chrome for Linux也需要chrome:// net-internals /#sockets

– pengemizt
2014年12月17日在11:51

Chrome for Linux仅需要进行套接字刷新。没有DNS刷新。 superuser.com/a/611712/30982

–伊利亚·林恩(Elijah Lynn)
16-2-5在17:04



#6 楼

这对我有用:清空并清除磁盘缓存

在Chrome中,单击扳手图标,然后单击选项。转到高级选项卡。单击“隐私”部分下的“清除浏览数据”按钮。只需选中“清空缓存”复选框,然后单击“清除浏览数据”按钮。

立即生效-我什至不必关闭浏览器。

评论


这似乎可以迫使Chrome识别对hosts文件的更改。

–minamhere
2012年6月26日下午2:39

在尝试了此处提到的chrome:// net-internals /#dns冲洗技巧之后,在Mac Chrome上为我工作了,但没有成功。

– Markus Amalthea Magnuson
2014年10月10日20:16

#7 楼

据我所知,在最新版本的Chrome(我使用的是26.0.1410.43)中,没有(可靠的)方法可以做到这一点,至少在Mac上则没有。

,我的情况是我没有添加任何建议。

我的情况是我添加了一个hosts文件条目,但Chrome仍将使用DNS返回的IP地址。 Firefox可以正常工作。

实际上,chrome://net-internals/#dns页面只是为我提供IP地址。它显示主机条目中的IP,但显然不是实际从何处获取站点。

评论


这里同样的问题。我曾尝试清除缓存,清除内部DNS缓存,ipconfig flush dns,但它仍从实时域加载本地网站。如果我在“隐身”中打开它,或者在Firefox中打开,但是正常的Chrome拒绝重置其DNS

– andrewtweber
2013年4月23日14:43在

#8 楼

我知道这是一个老问题,但是与其他人一样,我也为之烦恼:即使清除了缓存,仍然需要一两分钟才能使新的DNS更改生效。

还有一些解决方法。通过chrome:// net-internals /#dns清除DNS缓存后(或使用可达到相同结果的扩展名):


打开隐身窗口,并为它添加新的DNS映射该域将立即生效。
清除浏览器缓存。如果您使用浏览器进行常规浏览,则会很麻烦。您可以以其他用户身份运行浏览器的单独实例,并且清除该帐户中的缓存不会干扰您的常规浏览缓存。我没有尝试过,但是应该可以。
按CTRL + F5。我必须按住CTRL + F5大约一秒钟,这会连续几次重新加载页面。这是奇怪的行为,但它有效并且同样有效。这是我的首选方法。

理想情况下,应该有一个可以清除DNS和缓存(特别是仅文档缓存而不是cookie缓存)的插件,但是我还没有找到任何类似的东西。

更新:在OSX上,Gas Mask应用程序非常适合在主机文件之间进行切换,并且与#2变通办法一起使用非常有效。

评论


刷新将无济于事。活动的TCP套接字仍将处于活动状态。您可以等待一到两分钟,也可以手动冲洗它们。

–起搏器
2015年5月21日在6:23

清除浏览器缓存是对我唯一有效的方法,即使等待了15分钟左右也是如此...谢谢!

–干草
9月14日9:30

#9 楼

Chrome_Hosts_Flush_Util:

解决由于Chrome使用套接字池而导致修改Chrome主机文件后,Chrome无法使用正确主机的问题。

Chrome在连接池加快。当Chrome发现请求可以重用连接池中的连接时,它不会再次通过DNS,因此,我们始终认为Chrome不会立即响应主机更改。

Chrome浏览器在chrome:// net-internals /#sockets选项卡中提供了用于刷新连接池的界面,但是我觉得很讨厌我必须先转到该选项卡,然后单击带有触控板的小按钮。 br />
我发现,当单击嵌入式套接字池的按钮时,Chrome执行两个关键的JavaScript方法。

g_browser.sendFlushSocketPools();
g_browser.checkForUpdatedInfo(false);


因此我将这两个方法封装在一个AppleScript脚本,可以将其转换为OS X应用程序或Alfred工作流,这两个脚本都可以轻松调用。

评论


嗨,Boreas320,如果链接过时,您是否可以提供答案中所提供链接的摘要?不鼓励仅/主要是链接的答案,因为它们可能会过时。

–bertieb
15年8月3日,12:41

向上!好主意!谢谢!但是,直到我用document.getElementById('sockets-view-flush-button')。click();替换了javascript为止,它对我来说都没有用。

– i_a
17年6月22日在21:11

#10 楼

我试图以多种方式刷新DNS缓存,但没有任何帮助。最后,我计划更改我的DNS条目。此技巧适用于所有通过高速LAN连接访问Internet的人。

在LAN连接上,通常为用户提供两个DNS地址。一个是主要的,另一个是辅助或替代的DNS地址。我所做的是,我只是将辅助地址更改为主要地址,反之亦然。它立即为我工作。

我将备用DNS地址作为主地址保留了两天。问题得以解决,后来,我恢复了旧的DNS条目。

#11 楼

整个过程:

在IIS(Windows 8)中创建站点,设置主机标头。

尝试在没有主机文件的情况下访问主机,确保使用http://它不只是做谷歌搜索。在chrome“ Version 32.0.1700.76 m”中正确失败了。

将主机添加为127.0.0.1的主机文件,现在可以在chrome中命中它。

从主机文件中删除并运行ipconfig / flushdns,chrome仍然显示网站!

除了CTRL + F5之外什么都不做,现在Chrome中的网站更正失败。

这里有许多不同的答案,我想知道是否我们每个人的用例都略有不同。

#12 楼

对我来说,私密浏览可以解决问题(新隐身窗口/私密窗口)。

评论


嗨,巴特,欢迎来到超级用户!不幸的是,这个问题是关于计算机版本的Chrome,而不是移动版本。我建议编辑您的答案以反映桌面版本。谢谢

–加拿大卢克
2014年2月21日,下午2:35

#13 楼

试用适用于Chrome的DNS Flusher。请注意,要使用它,启动Chrome浏览器时需要使用命令行标志--enable-benchmarking

评论


扩展名不再存在

– jmgarnier
19年4月1日在8:47

#14 楼

导航至chrome:// net-internals /#dns,然后按“清除主机缓存”按钮。如已经回答的
,在OS X中可能还需要
dscacheutil -flushcache命令来刷新系统范围的DNS缓存。
Windows命令提示符中的ipconfig / flushdns

#15 楼

在Mac OS X上,上述方法都不适合我。采取了以下方法:

单击Chrome菜单>首选项>单击页面底部的链接show advanced settings>单击clear browsing data部分中的privacy按钮>仅选择cached images and filesdownload history(也许以后不需要,但也不会造成任何伤害)>单击clear browsing data按钮。

#16 楼

5年后...
Chrome现在可以选择禁用缓存。

按F12(或Ctrl + Shift + I)以调用DevTools。
转到网络Tab
选中“禁用缓存”框。
重新加载页面
右键单击重新加载按钮,以打开菜单。选择“清空缓存并强制重新加载”。
在DevTools中启用缓存。

这也解决了重定向缓存(chrome缓存永久重定向)
来源:mwender.com

#17 楼

对于iPhone用户,这些技术同样有效。
我必须对网站进行一些测试,我想覆盖普通的DNS服务器,并使用自己的DNS服务器处理尚未公开的DNS条目。

我将iPhone 6 Plus上wifi设置中的DNS条目覆盖到自定义DNS服务器。对于Safari和Perfect Browser来说已经足够了。但是Chrome似乎忽略了这一点,并拥有自己的一组DNS条目。我不知道它们来自哪里。

我做了上面描述的事情


导航到chrome:// net-internals /#dns并单击“清除主机缓存”
导航到chrome:// net-internals /#sockets并单击“刷新套接字池”

,我还必须如上所述使用InCognito选项卡。 br />
只有Chrome才使用我的自定义DNS条目。