Hosts 的作用

Published in categories blog      tagged with

因为 Steam 社区被封,导致修改 hosts,了解下 hosts。

    Hosts 文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机名称映射到相应的 IP 地址。Hosts 文件通常用于补充或取代网络中DNS 的功能。

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

一个简略的上网过程: 输入域名 ——> DNS(Domain Name Server)服务器解析 ——> 找到对应的IP ——> 返回请求的内容

在引入DNS(Domain Name System,域名系统)之前,网络中的主机是将容易记忆的域名映射到IP地址并将它保存在一个共享的静态文件hosts中,再由hosts文件来实现网络中域名的管理。

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

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

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

DNS 污染

Hosts 文件的作用:

  1. 加快域名解析,不用请求网络上的DNS服务器。
  2. 方便局域网用户
  3. 屏蔽网站(域名重定向)
  4. 顺利连接系统 对于Lotus的服务器和一些数据库服务器,在访问时如果直接输入IP地址那是不能访问的,只能输入服务器名才能访问。那么我们配置好Hosts文件,这样输入服务器名就能顺利连接了。
  5. 虚拟域名 很多时候,网站建设者需要把”软环境“搭建好,再进行上传调试。但类似于邮件服务,则需要使用域名来辅助调试,这时就可以将本地 IP 地址与一个”虚拟域名“做地址指向,就可以达到要求的效果,且无需花费。如:   127.0.0.1 网站域名   之后在浏览器地址栏中输入对应的网站域名即可。

hosts文件运用场景:

  • 指定访问 如果一个服务有多个服务器IP的话,那么可以把该网址指定到访问某台服务器上。
  • 加速域名解析
  • 绕过DNS污染&劫持 绕过DNS污染,我们都知道国内如果不搭“梯子”是不可以浏览 Facebook,twitter,youtube等。这其中有一部分原因就是因为DNS服务器被污染了,通过一些技术手段让服务器记录域名对应解析指向一个错误的IP地址,这样你就永远找不到对的服务器了,以前的时候,如果我们知道一些屏蔽的网站的IP地址,就可以通过hosts文件直接访问了,你的DNS服务器不管再怎么污染或者说劫持都不管我的事啦,但是现在GFW升级了啊。这种方法对于一些热门屏蔽网站也不见得有效了。 还有一种就是劫持了,我们一般普通网民的DNS服务器ISP(Internet Service Provider)提供商都是电信,联通(网通),移动(铁通)这三家提供,那么有趣的一个现象就是,我有时输入一个网址,得到的却是说到不到网站,然后跳出一个114网页,里面一大堆的垃圾广告(谋取钱财),恶心的要死,关键是有些网站明明能够访问,却被半道劫持了,给我们返回一个我们所不期望的IP。

一个最通俗易懂的比喻:

hosts=传统的电话簿

DNS(递归)=传统查号台的接线员(如114)

目标网站(域名)=需要查询其电话号码的电话用户(个人/单位)

目标网站对应的IP=电话用户的电话号码

如果手头(本机)没有电话簿(即hosts),你需要打电话到114查号台(即网络上的DNS)查询某个敏感用户(即目标网站)的电话号码(即网站对应的IP)。接线员(即递归DNS)根据机房记录(墙内污染池)告诉你一个错误的号码或空号(即404),于是,你无法接通电话。反之,如果你手里有电话簿(即本机有hosts文件),你不需要打电话到查号台(DNS),直接在电话簿(hosts)中找到用户(目标网站),并直接拨打对应的电话号码(访问目标网站对应的IP)。

References:

  1. hosts_百度百科
  2. DNS服务器_百度百科
  3. [另一个SteamCommunityFix 支持Win/Linux/MacOS、开源 - 平台研讨 - SteamCN 蒸汽动力 - 驱动正版游戏的引擎!](https://steamcn.com/t339641-1-1)
comments powered by Disqus