通过设置hosts文件,可以强制指定域名对应的IP。修改hosts文件时,如果想让浏览器生效,最直接的方法就是关闭浏览器再重新打开;如果不想重启浏览器,只需要清除浏览器的DNS缓存即可。. 清除 DNS 缓存很容易。具体操作如下:
:在浏览器地址栏输入://net-/#dns,回车,页面会显示当前所有的DNS缓存,点击“清除主机缓存”可以清除所有DNS缓存。有时这种方法可能不会立即生效,可以使用其他设置,在地址栏中输入:///回车,通过搜索“预测网络操作”找到配置项“预测网络操作以提高网页加载速度” ", 去掉前面的勾即可。
:在地址栏 about: 回车,可能会出现警告信息,直接点击按钮进入,会出现的所有配置信息,通过搜索 dns 过滤,可以看到一个名为 . ,其对应的值为DNS缓存的时间,双击此项,会出现修改提示框,填0(不缓存DNS)。
起源。. . 恼火。. .
各大浏览器默认开启DNS缓存,所以先访问一个不存在的域名后,再将该域名添加到本地hosts文件中指向本地,用该浏览器访问还是会提示该域名不存在. . .
解决方案:
解决方案:
有dns缓存功能,但是默认缓存时间只有1分钟。您可以通过如下修改默认值来加快 DNS 解析:
打开新窗口,在地址栏中输入about:,回车谷歌浏览器清除DNS缓存的方法,进入设置界面。然后搜索。,把原来的60改成6000(意思就是缓存6000秒),重新搜索。将默认的 20 更改为 1000(表示缓存为 1000)。如果以上两项不存在,则可以创建。新的项目类型是整数。当然,也可以根据需要设置其他值。
但是,如果dns缓存时间过长,也会出现问题。例如,如果某些网站的 ip 被更改,则无法访问。
对于这样的问题,你也可以安装一个插件来启用或禁用dns缓存功能。
IE解决方案:
要禁用 DNS 缓存谷歌浏览器清除DNS缓存的方法,请将以下内容保存为注册表文件,并在运行时将其写入注册表:
5.00
[\\\\\\]
""=双字:
""=双字:
""=双字:
写入注册表后,IE将不再缓存DNS,我们的hosts会立即生效,无需重启浏览器。
如果需要恢复IE的DNS缓存,只需清除我们之前写的注册表内容即可。同上:
5.00
[\\\\\\]
""=-
""=-
""=-
浏览器:
为了加快访问速度,浏览器采用了预取DNS记录并在本地建立DNS缓存的方式来加快网站的连接速度。可以在谷歌浏览器地址栏输入about:DNS,回车查看本地DNS缓存。
有一个DNS插件,但没有版本。其实清下DNS缓存很简单:
1、打开方式:://net-/#dns
2、点击上方“清理主机缓存”
您也可以在工具中选择清除缓存,这样DNS缓存就会一并清除。
下如何清除dns
在微软下,可以使用/ns命令清除dns缓存。
您也可以使用命令 / 查看 dns 缓存的内容。
Mac OSX下如何清除dns缓存
在 Mac OSX 中,您可以使用此命令 - 清除保留的缓存。
重击-2.05a$ -
Linux下如何清除dns缓存
在linux中,nscd进程负责管理DNS缓存。
要清除 DNS 缓存,请重新启动 nscd 守护程序。
要重新启动 nscd 进程,请使用命令(不带引号)'/etc/rc.d/init.d/nscd'
经常做web开发的工程师会遇到需要将域名绑定到特定IP进行测试的情况。大家一般都是通过修改hosts文件来解决问题的,但是经常遇到修改hosts不生效,有时生效,有时不生效的情况。为什么?
来自:DNS缓存机制
有一篇非常详细的文章 What when you to a URL on DNS 缓存机制。
简单来说,域名的DNS记录在本地会有两种缓存:浏览器缓存和操作系统(OS)缓存。在浏览器中访问时,会先访问浏览器缓存,没有命中则访问OS缓存,最后访问DNS服务器(一般由ISP提供),然后递归DNS服务器查找域名记录并返回。
DNS 记录会有一个以秒为单位的 ttl 值(生存时间),表示记录的最大有效期。经过实验,OS缓存会引用ttl值,但并不完全等于ttl值,而且浏览器DNS缓存时间与ttl值无关,每个浏览器使用一个固定值。
这是一篇详细测试为什么 Web DNS 可能是坏事的文章:
后来我也测试了一下。Mac下DNS缓存时间(23.0.1271.101)为1分钟,DNS缓存时间为10秒左右。
解决方案:hosts文件修改原理
那么修改hosts文件后,发生了什么?这里先提一个工具:://net-/#dns。这是当前系统中的 DNS 缓存列表及其使用情况。使用此工具,您可以看到:
1
**修改hosts文件后,所有操作系统的DNS缓存都会被清除,但浏览器缓存不会改变。**
网上盛传,://net-/#dns下的“清除主机缓存”可以清除DNS缓存。在这里,博主做了一个测试。这里只清除了操作系统的缓存,没有清除浏览器的DNS缓存。当 DNS 记录显示“”时,表示浏览器 DNS 缓存已被清除。所以使用Clear Host Cache其实是没用的。
那么回到最初的问题,为什么有时候修改hosts文件后会立即生效,但是有时候却不是一直生效呢?其实原因很简单。这是因为浏览器缓存的过期时间是根据最后一次查询某个域名的DNS记录来计算的。
例如:我用了00秒的访问。这时候就生成了浏览器DNS缓存,然后我修改hosts文件指向本地的127.0.0.1,然后在05秒内尝试再次访问这个地址,因为浏览器的DNS缓存还没有过期,所以无法反映hosts的修改。
还有一种情况,好久没访问了,然后修改hosts文件指向127.0.0.1,这次是因为浏览器没有DNS缓存,因此会查询操作系统中的DNS缓存,此时hosts文件生效!
前面说过,浏览器DNS缓存时间大概是10秒左右,所以在调试程序的时候,很多人都习惯于修改hosts进行调试,因为大多数情况下,修改hosts之后,浏览器DNS缓存已经失效了。
那么如何主动清除浏览器DNS缓存呢?博主还没有找到办法。在测试了“清除缓存”选项后,他发现它并没有达到预期的效果。
然后,请在修改主机后耐心等待几秒钟。
最后一个广告,博主正在开发一个比修改hosts更方便的DNS更改工具,应该会在新的一年推出,敬请期待!
转载于:
评论留言