hosts是什么

小白 2020-04-13 11:53:00
QA

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址。

Hosts 是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 Hosts 文件中寻找对应的 IP 地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交 DNS 域名解析服务器进行 IP 地址的解析。

hosts是什么

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

历史

在引入 DNS(Domain Name System,域名系统)之前,网络中的主机是将容易记忆的域名映射到 IP 地址并将它保存在一个共享的静态文件 hosts 中,再由 hosts 文件来实现网络中域名的管理。最初 Internet 非常小,仅使用这个集中管理的文件就可以通过 FTP 为连入 Internet 的站点和主机提供域名的发布和下载。每个 Internet 站点将定期地更新其主机文件的副本,并且发布主机文件的更新版本来反映网络的变化。

但是,当 Internet 上的计算机迅速增加时,通过一个中心授权机构为所有 Internet 主机管理一个主机文件的工作将无法进行。文件会随着时间的推移而增大,这样按当前和更新的形式维持文件以及将文件分配至所有站点将变得非常困难,甚至无法完成,于是便产生了 DNS 服务器。

工作原理

浏览器访问网站,要首先通过 DNS 服务器把要访问的网站域名解析成其指定的 IP 地址,之后,浏览器才能对此网站进行定位并且访问其数据。

操作系统规定,在进行 DNS 请求以前,先检查系自己的 Hosts 文件中是否有这个域名和 IP 的映射关系。如果有,则直接访问这个 IP 地址指定的网络位置,如果没有,再向已知的 DNS 服务器提出域名解析请求。也就是说 Hosts 的 IP 解析优先级比 DNS 要高。

存储位置

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

以下为 hosts 文件在不同系统中所处的目录

Windows XP/2000/Vista/7/8/8.1/10:C:\windows\system32\drivers\etc\

(XP 系统无法使用 bat 批处理命令直接替换 hosts,需手动替换后重新插拔网线或重启方使 hosts 生效)

(可更改\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath 项修改 host 位置)

Windows 95/98/Me:%WinDir%\ (其实就是 C:\WINDOWS)

Linux 及其他类 Unix 操作系统:/etc/

Mac OS 9 及更早的系统:System Folder: Preferences 或 System folder(文件格式可能与 Windows 和 Linux 所对应的文件不同)

Mac OS X:/private/etc(使用 BSD 风格的 hosts 文件)

OS/2 及 eComStation:"bootdrive":\mptn\etc\

Android:/system/etc/

Symbian 第 1/2 版手机:C:\system\data\

Symbian 第 3 版手机:C:\private\10000882\(能使用兼容 AllFiles 的文件浏览器访问。)

iPhone OS:/etc/(需要越狱)

iPad OS:/private/etc

webOS:/etc

文件内容

Windows 版本原始 host 文件内容:
# 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 文件。

值得一提的是#后都是注释,所以清空 hosts 文件对系统正常运行并没有什么影响。

具体作用

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

1、加快域名解析

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

2、方便局域网用户

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

3、屏蔽网站(域名重定向)

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

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

127.0.0.1 要屏蔽的网站 A 的域名

0.0.0.0 要屏蔽的网站 B 的域名

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

4、顺利连接系统

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

5.虚拟域名

很多时候,网站建设者需要把”软环境“搭建好,再进行上传调试。但类似于邮件服务,则需要使用域名来辅助调试,这时就可以将本地 IP 地址与一个”虚拟域名“做地址指向,就可以达到要求的效果,且无需花费。如:  127.0.0.1 网站域名  之后在浏览器地址栏中输入对应的网站域名即可。

文件修改

1、修改 hosts 文件:

一般打开 hosts 文件里面都会有个示例,按照其格式修改即可

比如以下内容:

127.0.0.1 abc.cn

即代表打开 abc .cn 这个网址将解析到 127.0.0.1,ip 地址与网址间至少有一空格,当然建议通过按[Tab]键来编辑,即美观又不容易编写失误;这也就是通过解析到本地回还地址屏蔽一些不友好的网站或 ip 了,当然在前面加一个#号即可暂时将这一行让它失效。

在修改 HOSTS 文件时候,还常常遇到修改保存后无效的情况,这里要提醒大家注意的一点:很多人是写在最后行,写完最后一行后在没有回车的情况下,这一行是不生效的。一定要记得回车。建议大家遵循这样的习惯:“ip 地址+Tab+域名+换行” 添加记录。

2、hosts 文件的系统属性:

hosts 文件默认具有隐藏属性,系统默认设置情况下是看不到的,当然进到这个文件除了直接输入路经也是无法看到了。解决办法:打开我的电脑->点击工具->文件夹选项->查看->取消勾选隐藏受保护的系统文件->确定即可。

修改后无法保存:

在 Hosts 文件上面点右键->属性->把只读属性去掉->确定,即可保存。

3.Hosts 在 UAC 安全策略无法打开或编辑:

遇到 windows VISTA 或者 windows 7 操作系统无法打开和编辑的情况,提示:“不能创建文件” 或者 “文件操作失败”等提示,是因为安全机制 UAC 造成的,你可以使用以下方法解决:

按着 Shift 键,然后 Hosts 文件上面右键, 以管理员方式运行即可。

4.一个比较便捷的打开 hosts 文件的方法

新建一个 txt 文件,在你其中输入:

notepad "%SystemRoot%\system32\drivers\etc\hosts"

ipconfig /flushdns

exit 保存,将扩展名改成成.bat,之后双击这个 bat 文件就可以自动打开 hosts 文件进行修改了。

5.Android 中的 Hosts

由于某些原因,可能需要修改 hosts 文件指定域名到对应的 IP 地址。Android 是基于 Linux 的系统,与 Linux 类似,通过 hosts 文件来设置。

在 Android 下,/etc 是 link 到 /system/etc 的,我们需要修改 /system/etc/hosts 来实现。但是这个文件是只读,不能通过 shell 直接修改。可以通过连接到 PC 上使用 adb 来修改。步骤如下:

1、获得 root 权限:adb root

2、设置/system 为可读写:adb remount

3、将 hosts 文件复制到 PC:adb pull /system/etc/hosts

4、修改 PC 机上文件

5、将 PC 机上文件复制到手机:adb push /system/etc/hosts

如果要查看是否修改成功,可以在 PC 上执行 adb shell,运行 cat /system/etc/hosts;或者在手机上运行 cat /system/etc/hosts。

在 Android 系统中,hosts 文件格式有一点与 PC 机 Linux 不同:不能在一行中一个 IP 对应多个域名,比如:

127.0.0.1 host1.example.com host2.example.com host3.example.com

在大多 PC 机 Linux 系统是合法的,但不能在 Android 上起作用,需要拆成每个域名一行才能使用:

x.x.x.x host1.example.com

x.x.x.x host2.example.com

x.x.x.x host3.example.com

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐