Skip to main content
 首页 » DevOps

host文件的工作原理及应用

2022年07月19日154jyk

host文件的工作原理及应用

Hosts文件是一个用于存储计算机网络中节点信息的文件,它可以将主机名映射到相应的IP地址,实现DNS的功能,它可以由计算机的用户进行控制。

一、Hosts文件基本介绍

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

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

  例如 c:\windows\system32\drivers\etc\ 

   动态目录由注册表键\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters\DataBasePath决定。 

  Windows 95/98/Me:%WinDir%\ 

  用记事本打开hosts文件,就可以看见了微软对这个文件的说明。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 

这个文件是根据TCP/IP for Windows 的标准来工作的。它的作用是定义IP地址和 Host name(主机名)的映射关系,是一个映射IP地址和Host name (主机名) 的规定。这个规定中,要求每段只能包括一个映射关系,也就是一个IP地址和一个与之有映射关系的主机名。 IP地址要放在每段的最前面,映射的Host name(主机名)在IP后面,中间用空格分隔。对于这段的映射说明,用“#”分割后用文字说明。

二、Hosts文件的工作方式

  现在让我们来看看Hosts在Windows中是怎么工作的。 

  我们知道在网络上访问网站,要首先通过DNS服务器把要访问的网络域名(XXXX.com)解析成XXX.XXX.XXX.XXX的IP地址后,计算机才能对这个网络域名作访问。 要是对于每个域名请求我们都要等待域名服务器解析后返回IP信息,这样访问网络的效率就会降低,因为DNS做域名解析和返回IP都需要时间。 

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

三、Hosts文件的工作方式和具体作用

  现在来看一下Hosts文件的工作方式以及它在具体使用中起哪些作用。 

1、加快域名解析

  对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度。由于有了映射关系,当我们输入域名计算机就能很快解析出IP,而不用请求网络上的DNS服务器。 

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文件,这样输入服务器名就能顺利连接了。 

5、屏蔽不想访问的网站的例子

  这里给出一些收集到的利用Hosts文件对一些网址屏蔽的例子,共大家学习使用Hosts文件时参考。 

  例1. 

  在 hosts文件中加入如下内容就可以屏蔽文件中定义的对应的网址。 

  127.0.0.1 localhost 

  127.0.0.1 download.3721.com 

  127.0.0.1 3721.com #3721网络实名 

  127.0.0.1 3721.net #3721网络实名 

  127.0.0.1 cnsmin.3721.com #3721网络实名 

  127.0.0.1 cnsmin.3721.net #3721网络实名 

  127.0.0.1 download.3721.com #3721网络实名 

  127.0.0.1 download.3721.net #3721网络实名 

  127.0.0.1 www.3721.com #3721网络实名 

  127.0.0.1 www.3721.net #3721网络实名 

  例2. 

  在 hosts文件中加入如下内容就可以屏蔽文件中定义的对应的网址。 

  127.0.0.1 localhost 

  127.0.0.1 bar.baidu.com #百度IE搜索伴侣 

  127.0.0.1 www.baidu.com #百度IE搜索伴侣 

  127.0.0.1 baidu.com #百度IE搜索伴侣 

  最后要指出的是,Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。 

四、如何用手动查杀劫持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文件删除!(不影响系统的正常使用)


本文参考链接:https://www.cnblogs.com/ricklz/p/8916430.html