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文件刪除!(不影響系統的正常使用)