修改Host为啥不生效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改Host为啥不生效相关的知识,希望对你有一定的参考价值。

当我们需要屏蔽某些恶意网站或访问特定网址以及在内网做测试的时候,常常需要修改hosts 文件,但是会发现有时修改完却总是不生效,而且Windows7系统和Vista系统、XP系统都会碰到此类情况,所以研究一下解决此类问题的办法。
一般在LINUX下修改完/etc/hosts文件都会立即生效的,即便偶尔不生效,只要重启一下network服务就可以了。但是windows却是会遇到这样的问题,而且在不同版本的系统中还略有区别。
在解决问题之前,让我们了解一下dns和hosts的知识。我们知道在访问网站时,首先要通过DNS服务器把要访问的域名解析成IP地址后,我们才能在浏览器中看到所访问网站的页面内容。根据Windows系统规定,在进行DNS请求以前,Windows系统会先检查自己的Hosts文件中是否有网络域名的映射关系。如果有,则调用这个IP地址映射,如果没有再向已知的DNS服务器提出域名解析,也就是说Hosts的请求级别比DNS高。
首先要知道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文件生效了。
参考技术A 在 UNIX/Linux 系统中,缺少一个 s 字母也不对。不是修改 host,而是修改 /etc/hosts 文件,该文件是一个有若干个 IP 地址与若干台主机名称对应的文件;或者是修改本台计算机的主机名(/etc/hostname),这两个在概念上是不一样的。所以说,关键是要看你指的是哪一种情况了。本回答被提问者采纳

linux ulimit 为啥不生效

参考技术A ulimit 限制的是当前 shell 进程以及其派生的子进程。举例来说,如果用户同时运行了两个 shell 终端进程,只在其中一个环境中执行了 ulimit – s 100,则该 shell 进程里创建文件的大小收到相应的限制,而同时另一个 shell
终端包括其上运行的子程序都不会受其影响。
如果要永久生效,就要写入相应的脚本啦,比如某用户的.bashrc文件,或修改系统的 /etc/security/limits 配置文件,或/proc 下的配置文件。本回答被提问者采纳

以上是关于修改Host为啥不生效的主要内容,如果未能解决你的问题,请参考以下文章

为啥修改hosts不立即生效

求大神,PHP为啥修改了代码没有生效?

php为啥更改了配置文件不生效

为啥在aop里面的事务不生效

LNMP 环境,php.ini 修改之后为啥不生效

windows 为啥设置了环境变量没生效