Kim_zh

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。
 

1存储位置

hosts文件在不同操作系统(甚至不同Windows版本)的位置都不大一样:
Windows NT/2000/XP/Vista/7/8(即微软NT系列操作系统):默认位置为%SystemRoot%\system32\drivers\etc\,但也可以改变。动态目录由注册表键\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath决定。其中,%Systemroot%指系统安装路径。例如,Windows XP/Windows 7/Windows 8 安装在C:\WINDOWS,那么Hosts文件就在C:\WINDOWS\system32\drivers\etc中。
在Windows中,默认的hosts文件通常是空白的或包含了注释语句并使用了一条默认规则[1]:
127.0.0.1 localhost
::1 localhost
但Hosts文件具有系统属性,系统默认是不显示此文件的,因此很多朋友虽然找到了相应的文件夹却看不到Hosts文件,显示系统文件的方法是:
打开我的电脑,依次点击【工具】-【文件夹选项】-【查看】,之后在【高级设置】中取消【勾选隐藏受保护的系统文件】,确定后就完成了。这时电脑中的所有系统文件会显示出来,Hosts文件也不会例外。
你也可以用windows自带的查找功能搜索找到hosts文件。
该文件其实是一个纯文本的文件,用普通的文本编辑软件如记事本等都能打开和编辑。
以下为hosts文件在不同系统中所处的目录
 
Windows 95/98/Me:%WinDir%\
Linux及其他类Unix操作系统:/etc
Mac OS 9及更早的系统:System Folder: Preferences或System folder(文件格式可能与Windows和Linux所对应的文件不同)
Mac OS X:/private/etc(使用BSD风格的hosts文件)
OS/2及eComStation:"bootdrive":\mptn\etc\
Android:/system/etc/hosts
Symbian第1/2版手机:C:\system\data\hosts
Symbian第3版手机:C:\private\10000882\hosts,只能使用兼容AllFiles的文件浏览器访问,大部分都不行。
iPhone OS:/etc
iPad OS:/private/etc
webOS:/etc
快捷查找方式
对于经常使用google服务的人来说,可以需要经常打开hosts文件,但是这个hosts文件属于系统文件是被隐藏保护的,在windows xp和windows 7/8系统下其地址是:\Windows\System32\Drivers\Etc。这里告诉大家一个比较便捷的打开hosts文件的方法
新建一个txt文件,在你其中输入:
notepad "%SystemRoot%\system32\drivers\etc\hosts"
ipconfig /flushdns
exit 保存,将扩展名改成成.bat,之后双击这个bat文件就可以自动打开hosts文件进行修改了。
2工作方式
 
让我们来看看Hosts在Windows中是怎么工作的。
我们知道在网络上访问网站,要首先通过DNS服务器把要访问的网络域名解析成XXX.XXX.XXX.XXX的IP地址后,计算机才能对这个网络域名作访问。
要是对于每个域名请求我们都要等待域名服务器解析后返回IP信息,这样访问网络的效率就会降低,因为DNS做域名解析和返回IP都需要时间。
为了提高对经常访问的网络域名的解析效率,可以通过利用Hosts文件中建立域名和IP的映射关系来达到目的。根据Windows系统规定,在进行DNS请求以前,Windows系统会先检查自己的Hosts文件中是否有这个网络域名映射关系。如果有,则调用这个IP地址映射,如果没有,再向已知的DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。
3具体作用
 
来看一下Hosts文件的工作方式以及它在具体使用中起哪些作用。
1、加快域名解析
对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了映射关系,当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。
2、方便局域网用户
在很多单位的局域网中,会有服务器提供给用户使用。但由于局域网中一般很少架设DNS服务器,访问这些服务器时,要输入难记的IP地址。这对不少人来说相当麻烦。可以分别给这些服务器取个容易记住的名字,然后在Hosts中建立IP映射,这样以后访问的时候,只要输入这个服务器的名字就行了。
3、屏蔽网站(域名重定向)
有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中,其中有些说不定就是木马或病毒。对于这些网站我们可以利用Hosts把该网站的域名映射到错误的IP或本地计算机的IP,这样就不用访问了。在WINDOWS系统中,约定 127.0.0.1 为本地计算机的IP地址, 0.0.0.0是错误的IP地址。
如果,我们在Hosts中,写入以下内容:
127.0.0.1 # 要屏蔽的网站 A
0.0.0.0 # 要屏蔽的网站 B
这样,计算机解析域名A和 B时,就解析到本机IP或错误的IP,达到了屏蔽网站A 和B的目的。
4、顺利连接系统
对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了。
5、屏蔽不想访问的网站的例子
4屏蔽例子
 
例1.
在hosts文件中加入如下内容就可以屏蔽文件中定义的对应的网址。
127.0.0.1 localhost
例2.
在hosts文件中的前面加入如下内容就可以屏蔽文件中定义的对应的网址。
127.0.0.1 localhost
#(注释)
例3.
免疫一些病毒(实际上是屏蔽网站,禁止访问有毒网站从而达到免疫一些已知有毒网站上的病毒)。首先提示,千万别以身试毒打开下列网页……
#机器狗木马病毒
#磁碟机dummycom病毒
最后要指出的是,Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。
5特殊作用
 
屏蔽网页插件
经常浏览网页或许会在某个网站上经常遇见弹出来的插件安装提示,虽然IE级别都高了一个档次,当总是提示又不想安装怎么办?,比如要屏蔽XX插件 修改Hosts输入:
保存退出,当再次打开某站点强出插件页面时,系统会自动将其解析到127.0.0.1这样一个不可能存在的IP地址上,这样也就屏蔽了该网页插件。
大家是否经历过这样的怪事:在正常浏览网页或进行其他办公操作的过程中,IE每隔一段时间就会自动弹出整屏的网页广告并且这些网页广告内容还会自动随机变换!不过网址的形式比较固定,其实这是一种类似“Win32.Troj.PopWeb”的系列木马病毒,大家也可以按照上面的方法将这些网址解析成127.0.0.1从而摆脱病毒的骚扰。
一键登录局域网指定服务器
单位的“高工”在公司的局域网中建了个CS对战服务器,于是我们这些一人吃饱全家皆饱的单身汉便又有了在下班时间消遣的好去处。不过有一点美中不足,局域网中没有再架设DNS服务器,所以我们每次只能输入IP地址进行登录,尽管只是数量不算多的一串数字,但毕竟数字枯燥啊!
在这种情况下,我们可以通过修改Hosts文件来达到一键登录局域网CS服务器的目的:打开Hosts文件,同样在新开启的空白行中输入“221.555.78.122 CSSer”(假定221.555.78.122是CS服务器在局域网中的IP地址),这样我们以后只要输入“CSSer”就可以直接登录局域网CS服务器了。
6病毒处理
 
首先必须要进入安全模式
下载一个360安全卫士或者金山卫士、瑞星卡卡、江民安全专家等软件,不要安装! 进入安全模式后,关闭进程EXPLORER.EXE,然后再添加进程EXPLORER.EXE(具体操作 文件-新建任务“运行”-浏览-C:\WINDOWS\explorer.exe)。然后安装运行,进行修复。
其次运行regedit删除如下项目,查找HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
后面有多种可能性,发现有2种! 名称为R或者A
1.R=C:\Windows\System32\rundl132.exectfmon.dll s
2.A=C:\WINDOWS\system32\rundl132.exemsad.dll s
你如果发现了这2个其中一个,直接删除此项目。
然后找到 C:\Windows\System32\ctfmon.dll或者 C:\Windows\System32\msad.dll
删除该文件
修复HOSTS文件(其实安全模式下安装运行360安全卫士就已经可以修复了,这里说手动修复的方法)请按以下方式操作:
1。搜索系统中的hosts文件,也可以根据如下路径查找:
Windows 98系统,文件路径\Windows目录下;
Windows XP系统,文件路径\Windows\System32\Drivers\Etc目录下;
Windows 2000系统,文件路径:WINNT\System32\Drivers\Etc目录下;
Windows 7系统,文件路径\\Windows\System32\Drivers\etc目录下;
2。首先将此文件备份;
3。右键点击hosts文件,选择{打开方式},选择记事本;
4。删除记事本的内容,或干脆将hosts文件删除!(不影响系统的正常使用)
7文件修改
 
1。正确修改hosts文件:
一般打开hosts文件里面都会有个示例,按照其格式修改即可
比如以下内容:
即代表打开abc .cn这个网址将解析到127.0.0.1,ip地址与网址间至少有一空格,当然建议通过按[Tab]键来编辑,即美观又不容易编写失误;这也就是通过解析到本地回还地址屏蔽一些不友好的网站或ip了,当然在前面加一个#号即可暂时将这一行让它失效。
2。hosts文件的位置:
xp,2000,WIN7等系统在 C:\windows\system32\drivers\etc 文件夹中
Windows 9x/Me系统在C:\Windows文件夹,
3。hosts文件的系统属性:
hosts文件默认具有隐藏属性,系统默认设置情况下是看不到的,当然进到这个文件除了直接输入路经也是无法看到了。解决办法:打开我的电脑->点击工具->文件夹选项->查看->取消勾选隐藏受保护的系统文件->确定即可。
修改后无法保存:
在Hosts文件上面点右键->属性->把只读属性去掉->确定,即可保存。
在修改HOSTS文件时候,还常常遇到修改保存后无效的情况,这里要提醒大家注意的一点:很多人是写在最后行,写完最后一行后在没有回车的情况下,这一行是不生效的。一定要记得回车。
建议大家遵循这样的习惯:“ip地址+Tab+域名+换行” 添加记录。
4。Hosts在UAC安全策略无法打开或编辑:
遇到windows VISTA 或者 windows 7 操作系统无法打开和编辑的情况,提示:“不能创建文件” 或者 “文件操作失败”等提示,是因为安全机制UAC造成的,你可以使用以下方法解决:
按着Shift键,然后Hosts文件上面右键, 以管理员方式运行即可。
5。Android中的Hosts
由于某些原因,可能需要修改 hosts 文件指定域名到对应的 IP 地址。Android 是基于 Linux 的系统,与 Linux 类似,通过 hosts 文件来设置。
在 Android 下,/etc 是 link 到 /system/etc 的,我们需要修改 /system/etc/hosts 来实现。但是这个文件是只读,不能通过 shell 直接修改。可以通过连接到 PC 上使用 adb 来修改。步骤如下:
1、获得root权限:adb root
2、设置/system为可读写:adb remount
3、将hosts文件复制到PC:adb pull /system/etc/hosts
4、修改PC机上文件
5、将PC机上文件复制到手机:adb push /system/etc/hosts
如果要查看是否修改成功,可以在PC上执行adb shell,运行cat /system/etc/hosts;或者在手机上运行cat /system/etc/hosts。
在Android系统中,hosts文件格式有一点与PC机Linux不同:不能在一行中一个IP对应多个域名,比如:
6。WIN7或者VISTA
WIN7或者VISTA系统的需要提升用户对Hosts文件的操作权限,否则无效。
具体方法如下:
方法一:按着Shift键,然后Hosts文件上面右键,以管理员方式运行即可。
方法二:鼠标右键点击Hosts文件,选择属性,然后点击“安全”选项卡,选中登录使用的用户账户并点编辑”,在弹出的权限设置界面再次选中当前用户,然后勾选“完全控制”或“修改”都可以,最后点击应用生效即可。
8文件更新
 
1.访问googlecode网站获得Google Hosts的最新文件[2],这里提供了最新的映射IP地址,将获得的hosts文件附加到自己电脑的hosts中就可以了;
2.利用smarthosts.exe程序,下载smarthosts.exe程序,下载后双击这个程序会生成3个文件 hosts、lists和srvlist注意使用这个经常会弹出错误,这个时候不要着急,过几分钟后可以重试。

posted on 2013-11-23 16:41  Kim.zh  阅读(675)  评论(0编辑  收藏  举报