作者 | 公众号:程序员的一天
一、hosts文件是什么?
hosts
文件是一个没有扩展名的系统文件。
![hosts文件简介,以及配置示例-1 hosts文件简介,以及配置示例-1](https://www.0546pc.com/wp-content/uploads/2023/07/v2-74edbe4a806da12dedbd5131dd4539d3_720w.webp.jpg)
它的主要作用是保存域名与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文件简介,以及配置示例-2 hosts文件简介,以及配置示例-2](https://www.0546pc.com/wp-content/uploads/2023/07/v2-c8d81d0a0bece46e42d4858f639fc091_720w.webp.jpg)
三、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
文件:
![hosts文件简介,以及配置示例-3 hosts文件简介,以及配置示例-3](https://www.0546pc.com/wp-content/uploads/2023/07/v2-e36b27eab0a72d53b06c89a30f1647b3_720w.webp.jpg)
需要添加”修改、写入”权限后,才能编辑保存。
我们以windows 10
系统为例,来说明如何修改hosts
文件的操作权限。
第一步:右键hosts
文件,点击”属性”,选中”安全”,
![hosts文件简介,以及配置示例-4 hosts文件简介,以及配置示例-4](https://www.0546pc.com/wp-content/uploads/2023/07/v2-03f3331d5a3825ed9327135c411e35e1_720w.webp.jpg)
第二步:然后,点击”编辑”:
![hosts文件简介,以及配置示例-5 hosts文件简介,以及配置示例-5](https://www.0546pc.com/wp-content/uploads/2023/07/v2-595aaae732cd5f1a647285a3125f301a_720w.webp.jpg)
第三步:选中”Users”,勾选”修改、写入”权限,点击”确定”。
![hosts文件简介,以及配置示例-6 hosts文件简介,以及配置示例-6](https://www.0546pc.com/wp-content/uploads/2023/07/v2-1871409e4c727fbb63c9702f3c02f0fa_720w.webp.jpg)
第四步:弹出安全中心,点击“是”
![hosts文件简介,以及配置示例-7 hosts文件简介,以及配置示例-7](https://www.0546pc.com/wp-content/uploads/2023/07/v2-8370170d128d91e374e39ae22f5a05ad_720w.webp.jpg)
第五步:再次打开hosts
文件属性,取消“只读”,点击“确定”
![hosts文件简介,以及配置示例-8 hosts文件简介,以及配置示例-8](https://www.0546pc.com/wp-content/uploads/2023/07/v2-60fe61da353627f58847f3f96633dd70_720w.webp.jpg)
第六步:弹出确认属性更改窗口,点击“确定”。
![hosts文件简介,以及配置示例-9 hosts文件简介,以及配置示例-9](https://www.0546pc.com/wp-content/uploads/2023/07/v2-e27b25e440e0182104e4361fe18e3435_720w.webp.jpg)
第七步:弹出拒绝访问窗口,点击“继续”
![hosts文件简介,以及配置示例-10 hosts文件简介,以及配置示例-10](https://www.0546pc.com/wp-content/uploads/2023/07/v2-870bb3b117667de1ce17a611af4dba0c_720w.webp.jpg)
这时候,hosts
文件就可以修改了。
六、简单测试
简单测试一下:
首先,利用python
在本地开启一个http
服务,监听80
端口,
C:\Users\欢迎关注公众号:程序员的一天>python -m http.server 80
Serving HTTP on :: port 80 (http://[::]:80/) ...
然后,打开并在hosts
中,最后一行添加如下内容:(构造了一个假域名www.test.com
)
![hosts文件简介,以及配置示例-11 hosts文件简介,以及配置示例-11](https://www.0546pc.com/wp-content/uploads/2023/07/v2-f5913c551475ddbf35e891f4705dac02_720w.webp.jpg)
最后,通过浏览器访问域名www.test.com
,可以看到能够正常访问:
![hosts文件简介,以及配置示例-12 hosts文件简介,以及配置示例-12](https://www.0546pc.com/wp-content/uploads/2023/07/v2-cf9c24b914aea744d6307218115acb62_720w.webp.jpg)