操作系统中的Hosts文件工作原理和作用及其详细介绍

一、什么是Hosts文件?

Hosts是一个没有扩展名的系统文件,Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能,它可以由计算机的用户进行控制。可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。

Hosts文件的存储位置在不同的操作系统中并不相同,甚至不同Windows版本的位置也不大一样:

Windows NT/2000/XP/2003/Vista/win7:默认位置为%SystemRoot%\system32\drivers\etc\,但也可以改变hosts文件位置:

windows XP系统的位置:C:\WINDOWS\system32\drivers\etc

hosts 文件内容:

复制代码
代码如下:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost

二、Hosts文件的工作方式

我们知道在网络上访问网站,要首先通过DNS服务器把要访问的网络域名(XXXX.com)解析成XXX.XXX.XXX.XXX的IP地址后,计算机才能对这个网络域名作访问。

要是对于每个域名请求我们都要等待域名服务器解析后返回IP信息,这样访问网络的效率就会降低,因为DNS做域名解析和返回IP都需要时间。
为了提高对经常访问的网络域名的解析效率,可以通过利用Hosts文件中建立域名和IP的映射关系来达到目的。根据Windows系统规定,在进行DNS请求以前,Windows系统会先检查自己的Hosts文件中是否有这个网络域名映射关系。如果有则,调用这个IP地址映射,如果没有,再向已知的DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。

三、Hosts文件的具体作用

1、加快域名解析

对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了映射关系,当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。要指出的是,Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。

2、方便局域网用户

在很多单位的局域网中,会有服务器提供给用户使用。但由于局域网中一般很少架设DNS服务器,访问这些服务器时,要输入难记的IP地址。这对不少人来说相当麻烦。现在可以分别给这些服务器取个容易记住的名字,然后在Hosts中建立IP映射,这样以后访问的时候,只要输入这个服务器的名字就行了。

3、屏蔽网站

现在有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中,其中有些说不定就是木马或病毒。对于这些网站我们可以利用Hosts把该网站的域名映射到错误的IP或本地计算机的IP,这样就不用访问了。在WINDOWSX系统中,约定127.0.0.1为本地计算机的IP地址, 0.0.0.0是错误的IP地址。

如果,我们在Hosts中,写入以下内容:

复制代码
代码如下:

127.0.0.1 www.XXXX.com #屏蔽的网站 A
0.0.0.0 www.XXXX.com #屏蔽的网站 B

这样,计算机解析域名 A和 B时,就解析到本机IP或错误的IP,达到了屏蔽网站A 和B的目的。

4、顺利连接系统

对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了。

四、如何用手动查杀劫持HOSTS表的病毒

如果你怀疑你的hosts文件 被病毒 木马修改,可复制以上内容修复hosts 文件。不过根本性的措施还是要找到并删除系统中的病毒文件。下面是修复步骤:

首先必须要进入安全模式

其次运行regedit删除如下项目,查找HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
后面有多种可能性,目前发现有2种! 名称为R 或者 A
1.R=C:\Windows\System32\rundll32.exe ctfmon.dll s
2.A=C:\WINDOWS\system32\rundll32.exe msad.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目录下;
WIN7系统,文件路径:WINNT\System32\Drivers\Etc目录下

2.首先将此文件备份;
3.右键点击hosts文件,选择{打开方式},选择记事本;
4.删除记事本的内容,或干脆将hosts文件删除!(不影响系统的正常使用)
注意:请不要直接用记事本等文本工具进行修改 UltraEdit等专业编辑器不会造成乱码等问题。