Windows 系统里面的 hosts 文件

一、什么是hosts文件?

hosts文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机名映射到相应的IP地址。hosts文件通常用于补充或取代网络中DNS的功能。和DNS不同的是,计算机的用户可以直接对hosts文件进行控制。

hosts文件的历史

ARPANET(Internet的前身)并没有对网络中各节点的地址使用DNS进行解析。由于当时对于这个用途并没有中心化的系统,每个网络节点都使用自有的网络节点地图,并指派相应的名称方便用户记忆。当时并没有任何系统来保证网络的所有系统都用同样的名称表示,也没有方法来读取其它用户的hosts文件并自动复制。ARPANET的规模较小,这样就允许在特定情况使用hosts文件来命名一些事先约定的名称。典型的网络节点都有一个地址,并可能有多个名称。但是当个人网络不断庞大之后,对hosts文件进行管理的难度也越来越大。

hosts文件的位置

hosts文件在不同操作系统(甚至不同windows版本)的位置都有所区别:(windows xp/2003/vista/2008/7/8中是:C:\Windows\System32\drivers\etc)。在windows中,默认的hosts文件通常是空白的或包含了注释语句并使用了一条默认规则:

127.0.0.1 localhost

::1 localhost

hosts文件的用途

hosts文件也可以用于其它情况,例如可以将已知的广告服务器重定向到无广告的机器(通常是本地的IP地址:127.0.0.1)上来过滤广告。同时也可以通过不下载网络广告,从而减少带宽。使用hosts文件还可减少对DNS服务器的访问来加快访问速度并减少带宽消耗。hosts文件的另一个重要用途就是用于拦截一些恶意网站的请求,从而防止访问欺诈网站或感染一些病毒或恶意软件。但同时,这个文件也可能被病毒或恶意软件所利用来阻止用户更新杀毒软件或访问特定网站。另外也可以通过修改hosts文件来强制将网站指定到正确的IP上,从而访问那些因为某些原因不能访问的站点。此外一些软件的破解激活也经常用到hosts文件,原理就是屏蔽软件自动连接官方服务器验证激活信息是否正确。

二、修改Windows7 hosts文件方法

提升用户对hosts文件的操作权限

在正常情况下如果直接修改保存hosts文件,即使是以管理员身份操作也会提示用户没有操作权限。这时我们可以通过提升用户对hosts文件的操作权限来解决,具体方法如下:

鼠标右键点击hosts文件,选择属性,然后点击“安全”选项卡,选中现在登录使用的用户账户并点击“编辑”,在弹出的权限设置界面再次选中当前用户,然后勾选“完全控制”或“修改”都可以,最后点击应用生效即可。设置完成后就可以对hosts文件进行操作更改了!

复制替换hosts文件

先复制一份hosts文件到其它位置,然后在复制的hosts文件中做你想要的更改,操作完成后把该hosts文件副本移动到原来hosts文件目录里,这时会提示是否覆盖,点击确定覆盖即可!

进入更低操作环境操作

和其它遇到操作权限问题一样,进入更低的操作环境也可很好的解决这种问题,如进入windows7安全模式或进入PE系统等,进入windows7安全模式方法如下:在启动计算机时快速按下键盘上的F8键,然后在出现的windows7高级启动选项中选择进入“安全模式”(用键盘上的箭头键选择,用Enter回车键确定),进入后即可修改保存hosts文件!

Windows 系统里面的 hosts 文件

三、hosts文件示例

原版的hosts文件内容

# Copyright (c) 1993-2009 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 # localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

修改后的hosts文件

下面是两个修改后的hosts文件,可作参考:

Windows 系统里面的 hosts 文件

Windows 系统里面的 hosts 文件

上一篇:DBCC - Undocumented commands


下一篇:PCRE的安装及使用