web 学习

hosts

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

历史

Internet的前身ARPANET中并没有对网络中各节点的地址使用DNS进行解析。由于当时对于这个用途并没有中心化的系统,每个网络节点都使用自有的网络节点地图,并指派相应的名称方便用户记忆,当时并没有任何系统来保证网络中的所有系统都用同样的名称表示,也没有方法来读取其他用户的hosts文件并自动复制。

ARPANET的规模较小,这样就也就允许了在很多情况使用hosts文件来命名一些事先约定的名称。其中典型的网络节点都有一个地址,并可能有多个名称。但是当个人网络不断庞大之后,对hosts文件进行管理的难度也越来越大。

文件位置及默认内容

hosts文件在不同操作系统(甚至不同Windows版本)的位置都不大一样:

  • Windows NT/2000/XP/Vista/7/8(即微软NT系列操作系统):默认位置为%SystemRoot%\system32\drivers\etc\hosts,但也可以改变。动态目录由注册表\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath决定。
  • Windows 95/98/Me%WinDir%\hosts
  • Linux及其他类Unix操作系统/etc/hosts
  • Mac OS 9及更早的系统:System Folder: Preferences或System folder(文件格式可能与Windows和Linux所对应的文件不同)
  • Mac OS X/private/etc/hosts(使用BSD风格的hosts文件)
  • OS/2eComStation"bootdrive":\mptn\etc\hosts
  • Android/system/etc/hosts
  • Symbian第1/2版手机:C:\system\data\hosts
  • Symbian第3版手机:C:\private\10000882\hosts,只能使用具有AllFiles权限的文件浏览器(也就是塞班系统的最高权限)访问,而绝大部分文件浏览器都不行(如X-plore和ActiveFile)[1]
  • iOS:/private/etc/hosts
  • webOS:/etc/hosts

在Windows中,默认的hosts文件通常是空白的或包含了注释语句并使用了一条默认规则:

127.0.0.1       localhost
::1             localhost

hosts文件的其它用途

hosts文件也可以用于其它情况,例如可以将已知的广告服务器重定向到无广告的机器(通常是本地的IP地址:127.0.0.1)上来过滤广告。同时也可以通过不下载网络广告,从而减少带宽。使用hosts文件还可以减少对DNS服务器的访问来加快访问速度并减少带宽消耗。

hosts文件的另一个重要用途就是用于拦截一些恶意网站的请求,从而防止访问欺诈网站或感染一些病毒恶意软件。但同时,这个文件也可能被病毒或恶意软件所利用来阻止用户更新杀毒软件或访问特定网站。

在中国大陆,由于防火长城DNS劫持,有一些网民也借使用hosts文件来强制将特定网站指定到未封锁的IP上。例如网络上有很多教授修改hosts文件来访问Google搜索的教程。比如就有维基媒体基金会的图片服务器IP地址被ISP封锁,通过修改hosts文件以正常显示图片的方法流传。

参见

参考文献及注释

  1. ^ Hosts file on S60 3.x Devices. 2007-12-02 [2008-02-26] (英文).

外部链接

自定义hosts文件[编辑]

管理hosts的应用程序[编辑]