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

 

为了方便用户记忆,咱们将IP变成一个个的域名来输入到浏览器进行访问。而这使得访问网站时要先将其域名解析成 IP 。DNS (Domain Name Server) 的做用就是进行 IP 解析,把域名对应到 IP。
在 Great FireWall 的 5 种封锁方法中,有一种简单而效果很好的方法是 DNS 污染。GFW 会对 DNS 的解析过程进行干扰,这会使对某些被干扰的域名返回一个错误的 IP 地址给你的主机,使你没法正确链接到你要的服务器上读取正确的信息。
 
Hosts 文件原本是用来提升解析效率。在进行 DNS 请求之前,系统会先检查本身的 Hosts 文件中是否有这个地址映射关系,若是有则调用这个 IP 地址映射,若是没有再向已知的 DNS 服务器提出域名解析。也就是说 Hosts 的请求级别比 DNS 高。当你的 Hosts 文件里面有对应的 IP 时,它就会直接访问那个 IP,而不用经过 DNS。
 
因此, 当咱们直接将 Google、Twitter、Facebook 之类的 IP 放入 Hosts 文件后,就能够跳过 DNS 的解析这一步,直接就行 IP 访问,不受 GFW 的 DNS 污染干扰了。
补充一条,就是为何 Hosts 的 IP 要时不时更改,为何 FB、Twitter 会仍旧上不去。是由于 GFW 的第二个大招,IP 封锁。好比访问国外一个 IP 没法访问,Ping 不通,tracert 这个 IP 后发现,所有在边缘路由器 (GFW) 附近被拦截。换言之,GFW 直接拦截带有这个 IP 头的数据包。因此,若是你更改的 IP 被封锁了,就算你过了 DNS 这一关,也仍旧不能翻过 GFW。
因此hosts才会频繁的更新新的ip、域名。
 
有不少人问:“怎么制做Google hosts?”
 
首先要弄明白https、“google.com”(域名)、ip地址、ping都是作什么的。
 
一、先说https, Hypertext Transfer Protocol Secure超文本传输协议SSL/TLS的组合,用以提供加密通信及对网络服务器身份的鉴定。简单的说就是加密的http协议。说到http协议,你们应该都知道默认是采用80端口,而https协议默认为443端口。
 
二、域名,简单说就是ip地址的名字,好记呗。上面问题中的“google.com”还 不算是完整域名,而是一个域 的名字(简称域)。有人说前面要加的“www”前缀,又叫主机,与域造成完整域名“www.google.com”。这就是为何要加”www”,由于“google.com”是一个域,只有指出某一主机才能ping。问题又来了,可为何有时只用域,如“google.com”也能ping,也能打开网页呢?这是由于在DNS中特别设置了主机解析记录。(我的自认为作了这个设置的都是注重细节的好网站)跑偏了。。。
 
三、ip地址,估计不须要多说了。
 
四、ping,网络测试工具,固然用来得到ip是可行的。
 
五、GoGo Tester寻找IP做为最后解决方案(目前成功率很低)
 
 
http与https
 

http是HTTP协议运行在TCP之上。全部传输的内容都是明文,客户端和服务器端都没法验证对方的身份。git

https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上。全部传输的内容都通过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端能够验证服务器端的身份,若是配置了客户端验证,服务器方也能够验证客户端的身份。github

 
封域名/内容过滤,用http协议发送数据的时候,墙检测到你要发送的域名,而后给你过滤掉,返回空或者出错等。用https能够解决这个问题,由于墙不知道你发送的是什么数据。若是用了https,由于没法检测内容,因此墙会在dns解析的时候,返回给你错误ip,dns没有加密,因此一样虽然用了https,但因为dns解析错误,仍是没法访问网站。因此在hosts给域名指向正确的ip,那么咱们就能够跨越过“长城”了。
 
 
https 网站如何制做hosts?如得到
从1中可知,http和https都是协议,区别只是对应端口不一样。那么ip呢?其实“