hosts文件修改完无效的解决办法

当我们需要屏蔽某些恶意网站或访问特定网址以及在内网做测试的时候,常常需要修改hosts 文件,但是会发现有时修改完却总是不生效,而且Windows7系统和Vista系统、XP系统都会碰到此类情况,所以研究一下解决此类问题的办法。

一般在LINUX下修改完/etc/hosts文件都会立即生效的,即便偶尔不生效,只要重启一下network服务就可以了。但是windows却是会遇到这样的问题,而且在不同版本的系统中还略有区别。

在解决问题之前,让我们了解一下dns和hosts的知识。我们知道在访问网站时,首先要通过DNS服务器把要访问的域名解析成IP地址后,我们才能在浏 览器中看到所访问网站的页面内容。根据Windows系统规定,在进行DNS请求以前,Windows系统会先检查自己的Hosts文件中是否有网络域名 的映射关系。如果有,则调用这个IP地址映射,如果没有再向已知的DNS服务器提出域名解析,也就是说Hosts的请求级别比DNS高。

下面说一下如何具体修改Hosts文件:

首先要知道hosts文件的位置,在xp,2000,win7等系统中找到如下位置C:\windows\system32\drivers\etc,我们可以看到hosts文件,注意hosts文件是ascii编码方式,而且是没有后缀名的。

其二正确修改hosts文件,一般hosts文件里面都会有个示例,比如 127.0.0.1 51cto.com   即代表打开51cto.com这个网址将解析到127.0.0.1,ip地址与网址间至少要有一空格,另外在最后一行书写映射时一定要加上回车再保存 以避免最后一行不生效,如果某条记录暂时不用,只需要在它前面加一个#号即可。    

hosts文件默认具有隐藏属性,系统默认设置情况下是看不到的,解决办法是打开我的电脑-点击工具-文件夹选项-查看-取消勾选隐藏受保护的系统文件,确定即可。如果修改后无法保存,请在Hosts文件上面点右键-属性-把只读属性去掉即可保存。

  在修改HOSTS文件时候,还常常遇到修改保存后无效的情况,我们可以使用ipconfig /flushdns命令来刷新dns缓存, 或者也可以在管理工具中打开服务,找到“DNS Client”将其停用并改为手动模式在修改完hosts启动。

  

注意:当你在打开浏览器的情况下修改hosts文件时,关闭浏览器时系统才会释放掉hosts文件占用的那部分内存,我们再次打开浏览器访问就发现已经生效了。

如果遇到windows 7 操作系统无法打开和编辑的情况,一般是因为安全机制UAC造成的,你可以按着Shift键,然后Hosts文件上面右键,以管理员方式运行即可。或者修改Hosts文件权限,将当前登录的账号加入到安全选项卡中,赋予写入权。

还有一种方法就是打开本地连接的Internet(TCP/IP)协议的属性页,点击常规选项卡中的高级按钮,选择WINS选项卡,勾选“启用 LMHOSTS 查询”,接着按下“导入 LMHOSTS”按钮,导入hosts文件,这样再次启动浏览器时,就会发现hosts文件生效了。

时间: 2024-08-03 23:56:39

hosts文件修改完无效的解决办法的相关文章

为什么hosts文件修改无效

首先在这里谢谢各位支持我的网友,本人也是刚刚学习node,所有什么不好的地方,望赐教.今天有点忙,node等空了下来,我们再来看. 修改hosts将域名指向新的ip是总是无法生效, 试过很多办法,问题却依然存在, 于是上微软的网站寻找答案, 最终发现时一个"DNS Client" 服务的问题, "DNS CLient"服务是缓存dns用的, 所以说修改了hosts的文件是不能马上生效的, 需要一段时间的延时, 通常可以用ipconfig /flushdns来刷新dn

ubuntu安装vmware12出现cannot ope dev/vmmon及modprobe vmmon提示密钥无效的解决办法

ubuntu12.04安装vmware12出现cannot ope dev/vmmon及modprobe vmmon提示密钥无效的解决办法 笔记本型号thinkpad E450C,前段时间删除了预装的windows,改成ubuntu12.04,并打算在ubuntu上安装一个windows虚拟机.下载vmware for linux并安装后,启动vmware提示"Cannot open /dev/vmmon: No such file or directory". 解决办法: 1.进入t

关于SSIS批量抽取Excel文件报0x80004005错误的解决办法

原文:关于SSIS批量抽取Excel文件报0x80004005错误的解决办法 标题: Microsoft Visual Studio ------------------------------ Package [连接管理器“Excel 连接管理器”] 出错: SSIS 错误代码 DTS_E_OLEDBERROR.出现 OLE DB 错误.错误代码: 0x80004005. 已获得 OLE DB 记录.源:“Microsoft JET Database Engine” Hresult: 0x80

用adb pull命令从android系统中读取文件失败的原因及解决办法

问题:使用adb pull命令从android系统中读取文件失败.显示:Permission denied 原因:是由于文件权限原因引起. 使用ls -l命令查看android系统中的文件权限为: -rw-rw---- app_51   app_51 也就是说,该文件只有app_51用户以及app_51群组拥有读写权限,而adb shell的用户为shell,既不是app_51用户,也不在app_51群组中,所以没有权限读取这个文件.所以就出现了 Permission denied. 解决方法:

Pycharm中不支持中文编码的解决方案。Pycharm中文报错。 Pycharm出现的部分快捷键无效及解决办法

Pycharm中不支持中文编码的解决方案.Pycharm中文报错. 1. 打开Pycharm ---->  File ----> Default setting ------> Editor -------> File Encodings ,如下图,设置成UTF-8, 然后应用 2.  点击[File]---[Setting]---[Editor]---[File and Code Templates],点击右边的[python script],在编辑框中输入: #-*-codin

文件组 'PRIMARY' 已满 解决办法

修改一个字段类型时,报的这个错. 此时需要增加次要数据文件 次要数据文件 次要数据文件包含除主要数据文件外的所有数据文件.有些数据库可能没有次要数据文件,而有些数据库则有多个次要数据文件.次要数据文件的推荐文件扩展名是 .ndf. 以下解决方法来自网上,稍加整理和修改. 解决办法: 1.检查磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理磁盘,腾出空间. 2.检查磁盘分区格式:如果是FAT16,则数据文件最大只能是2G,如果是FAT32,则数据文件最大只能是4G,改为NTFS分区则没有这种限制

[ArchLinux]进行更新时出现错误:GPGME error: 无数据,数据库无效的解决办法/

今天在我进行系统更新pacman -Syu时,出现了如下错误: # pacman -Syu 错误:GPGME error: 无数据 错误:GPGME error: 无数据 错误:GPGME error: 无数据 错误:GPGME error: 无数据 错误:GPGME error: 无数据 :: 正在同步软件包数据库... core 已经是最新版本 0.0 B 0.00B/s 00:00 [----------------------] 0% extra 已经是最新版本 0.0 B 0.00B/

MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法

Ms - sql 数据库批量替换字符串 MSSQL报错:参数数据类型 text 对于 replace 函数的参数 1 无效的解决办法 update ContentInfo set spcContent=replace(cast(spcContent as varchar(max)),'http://www.buy5188.com/','http://www.epowerchina.com.cn/')

eclipse中加放js文件报js语法错误解决办法

1) eclipse设置         window->preference-> JavaScript -> Validator->Errors/Warnings->Enable Javascript Sematic validation前面的钩号去掉 2) .project文件    下面的代码删除 <buildCommand> <name>org.eclipse.wst.jsdt.core.javascriptValidator</name