Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
需要注意的是,Hosts文件配置的映射是静态的,如果网络上的计算机更改了请及时更新IP地址,否则将不能访问。
Hosts,存放的位置是:C:\Windows\System32\drivers\etc 路径下一个没有扩展名的文件,这个小小的 文件通常不到 1MB,它的原理很简单,但应用场景却非常广泛,具体如下:
01 Hosts 到底干什么
了解 Hosts 工作原理前要先了解互联网工作原理。
当我们访问一个网站的时候,实际上访问的是这个网站所在服务器的 「IP 地址」,比如通过「220.181.38.148」也能打开###百##度的首页。
但是「IP 地址」是数字,不便于记忆,所以我们给不同网站的「IP 地址」取名,也就是网站的「域名」。
在 ARPANET(全球互联网的前生)发展初期是没有 DNS 的,整个网络中服务器数量都非常少,每台电脑只使用 Hosts 来解析不同服务器的「IP 地址」,后来互联网迅速壮大,单靠本地 Hosts 文件已经无法装下如此多信息,这才诞生了 DNS 。
全球互联网主机数量 1994-2001
所以,Hosts 文件相当于网站的「通讯录」,它记录着不同「域名」对应的「IP 地址」。
在操作系统中 Hosts 文件的优先级高于 DNS 服务器,如果 Hosts 有服务器信息,则直接调用,否则才询问 DNS 服务器。
正是利用 Hosts 的高优先级,将错误的「IP 地址」与域名绑定,就实现了屏蔽某些服务器的效果。
02 Hosts 文件格式
Hosts 格式非常简单,左边为「服务器 IP 地址」,右边是对应域名,中间以最少一个空格隔开。
# 开头为注释,不会生效。
03 Hosts 应用场景
大多数操作系统都有一个与 Hosts 类似功能的文件,工作原理也一样。
在 Windows 系统中,我们可能无法直接在「etc 文件夹」中修改保存它,可以将它复制到桌面,然后用记事本打开,修改后再复制回去。
1、屏蔽广告和破解
现在的网页广告大多是专门的广告投放公司在做,一部分广告屏蔽工具就是替换「无效的IP」来实现屏蔽广告的效果。
127.0.0.1 就常用来作屏蔽 IP,这是「本机回送地址」,也就是你使用的电脑。
比如我们在 Hosts 文件中加入
127.0.0.1www.xxxxxx.com
那就无法打开该域名的网站了
同样利用这个原理,一些破解软件,也通过添加错误的 Hosts 信息来屏蔽激活服务器,避免查询激活状态。
2、访问 DNS 错误的网站
现在我们访问网页都是通过 DNS 解析 IP 地址,如果使用本地 Hosts 则可以跳过这一步直接访问服务器 IP,可以提升网页打开速度,不过现在的 DNS 服务器响应速度都很快,大多数时候没必要这样做。
而有时候,有些网站,因为有些原因,导致 DNS 服务器无法给出正确的 IP 地址,也可以通过 Hosts 来代劳。
3、建立映射关系
有些公司的局域网内有自己的服务器,有些人也有自己的 NAS,每次输入 IP 访问有些麻烦,也可以再 Hosts 中将局域网中服务器 IP 与任意网址绑定,这样通过网址也能访问局域网中本没有域名的服务器。
4、被滥用
Hosts 简单又强大,自然就免不得被恶意使用,比如使用修改过的镜像,或者流氓PE安装系统,可能你的 Hosts 就已经被人动过手脚,他们将一些常用网站的 IP 换到自己的网站,以赚取浏览,甚至将用户导向一些还原度非常高的山寨网站上,骗取账户密码甚至财产。
不过还好只是修改 Hosts 并不会造成致命的系统安全故障,大家尽量使用微软提供的官方镜像和安装工具装系统就好了。
如果你的 Hosts 已经被污染,也可以直接删除这个文件,或者到别的电脑上复制一个过来。
最后需要注意,因为 Hosts 文件配置的是「静态IP」,如果服务器更新了IP地址,本地Hosts 就会失效,需要及时更新 Hosts 文件才行。