hosts | hosts文件的作用
背景
测试那边准备发布APP,却发现iTunes connect进不去了,于是她们百度了一下,网上有人说修改hosts文件可行,于是她们就在她们的电脑上照着网上的步骤修改了一下,改了之后她们的电脑就可以进去了。
但是她们的电脑是Windows系统,她们不知道Mac的hosts文件在哪,于是跑过来问我。
我一愣,hosts是什么?在哪?我怎么知道在哪。。。
然而时间宝贵发愣不能超过三秒,于是我把坐我旁边用Mac开发安卓程序的同事叫了过来,安卓小伙伴很给力,两三下就找到了hosts文件。在旁边观望的我,记下了这个过程:
hosts文件就在
user
的上一个目录的etc
文件夹中。
通过vim编辑器打开:
然后测试来添加了一行:
实不相瞒,我对网络知之甚少,但是基于这几天对网络的学习,当测试敲下这一行的时候,我已经猜测到hosts文件的作用了。我的猜测是:
左边的是IP地址,右边的域名,hosts的作用难道就是将右边的域名映射到左边的IP地址?
为什么我能想到这个?因为前两天我知道了一个叫做DNS的东西,这个东西,就是将域名转换成IP地址的。所以当我看到IP地址和域名同时出现时,我首先想到的是它们之间是不是要相互转换。
后来我百度,也证实了我的猜想。
hosts文件的作用
主机间的通信是基于IP地址的,当我们在浏览器输入域名时,会先将域名转换为IP地址。
域名转IP地址,可以通过DNS解析,也可以是hosts文件解析。
既然DNS和hosts都可以解析域名,那它们必然存在一个先后顺序,这个顺序是怎样的呢?下面是我百度到的答案:
Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库” ,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到, 则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。
相信看到这里,你已经清楚hosts的作用了。
做个小实验
既然hosts可以将域名和IP地址相关联,那我可不可以将简书的域名映射到百度的IP地址呢?
期望的效果就是我在浏览器输入www.jianshu.com,然后敲下回车,进入的却是百度首页。
先去百度一下找到百度的IP地址,然后在hosts文件里写好:
接着我在浏览器输入jianshu.com,敲下回车,希望出现百度首页,没想到却出现下面的画面:
旁边的安卓小伙伴看了,说:“不要用大网站的地址,用小网站来实验”。
然后我就拿www.json.cn映射到我们公司自己的测试服务器地址,结果证明,我们公司的服务器貌似安全性不高,直接就打开了。。。
后记
为什么简书域名映射到百度IP地址打不开,现在的我还不能解答,等我更深入的学习HTTP后,再来探讨。