作者 | 公众号:程序员的一天
一、hosts文件是什么?
hosts
文件是一个没有扩展名的系统文件。
它的主要作用是保存域名与ip
的映射关系。
windows
系统,hosts
文件位置:
C:\Windows\System32\drivers\etc\hosts
linux
系统,hosts
文件位置:
/etc/hosts
二、域名与ip
地址
在网络中,一个ip
地址,代表一台主机。
我们的web
服务(网站),需要在主机上部署后,才能被访问。
正常网站,通常需要公网
ip
当用户访问网站时,必须通过ip
寻址,才能找到对应的主机。
ip
找主机,端口找具体服务
但是,世界上的网站太多了,ip
地址又不够形象,不便于人类记忆。
试想一下,让你记忆几十个形如”14.215.177.38″这样的数字串… … 非常痛苦
于是,出现了:域名。
域名,更形象具体,便于记忆!
例如:
baidu.com
、bing.com
另外,当网站升级或迁移时,ip
地址也许会改变。
有了域名之后,只要网站域名不变,就不会影响用户使用!
即使有了域名,网络中也必须通过ip
寻址,才能找到对应的主机资源。
域名,对人类友好。
ip
,对机器友好。
所以,当我们在浏览器输入了某个域名后,浏览器首先会进行域名解析(也叫DNS
解析),以获取对应域名的ip
地址。
正常情况下,浏览器会向DNS
服务器发起一次请求,查询某个域名对应的ip
地址。
当浏览器获取到网站真正的ip
地址后,才能向网站发起请求。
通过ping
命令,我们可以查看到某个域名的ip
地址:
C:\Users\欢迎关注公众号:程序员的一天>ping www.baidu.com
正在 Ping www.a.shifen.com [14.215.177.39] 具有 32 字节的数据:
来自 14.215.177.39 的回复: 字节=32 时间=44ms TTL=54
来自 14.215.177.39 的回复: 字节=32 时间=43ms TTL=54
能够看到一个ip
:14.215.177.39
,
这是百度的ip
,通过这个ip
,也可以直接访问百度:
三、hosts
文件和DNS
解析
在系统进行dns
解析之前,会首先去hosts
文件中查找。
在hosts
文件中,如果能够找到被访问域名的ip
地址,就不会再向dns
服务器发起请求。
四、hosts文件配置
一般情况下,不建议修改hosts
文件。
但是在开发过程中,如果我们没有注册域名,又想通过域名来测试访问。
注册域名,需要费用!
这时候就可以修改hosts
文件,构造一个假的域名以供开发使用。
hosts
文件的配置规则如下:
格式:
ip 域名
示例:
127.0.0.1 www.test.com
# 当访问www.test.com时,其实访问的是本机的127.0.0.1:80
五、修改hosts
文件权限
通常,普通用户没有权限修改hosts
文件:
需要添加”修改、写入”权限后,才能编辑保存。
我们以windows 10
系统为例,来说明如何修改hosts
文件的操作权限。
第一步:右键hosts
文件,点击”属性”,选中”安全”,
第二步:然后,点击”编辑”:
第三步:选中”Users”,勾选”修改、写入”权限,点击”确定”。
第四步:弹出安全中心,点击“是”
第五步:再次打开hosts
文件属性,取消“只读”,点击“确定”
第六步:弹出确认属性更改窗口,点击“确定”。
第七步:弹出拒绝访问窗口,点击“继续”
这时候,hosts
文件就可以修改了。
六、简单测试
简单测试一下:
首先,利用python
在本地开启一个http
服务,监听80
端口,
C:\Users\欢迎关注公众号:程序员的一天>python -m http.server 80
Serving HTTP on :: port 80 (http://[::]:80/) ...
然后,打开并在hosts
中,最后一行添加如下内容:(构造了一个假域名www.test.com
)
最后,通过浏览器访问域名www.test.com
,可以看到能够正常访问: