每日一个计算机小知识:DNS和hosts文件

每日分享一个有趣的计算机小知识,今日话题:DNS和hosts文件

DNS 是 Domain Name System 的缩写(网上也有的地方说是 Domain Name Server 域名服务器的缩写,其实这是误传,只是从英文简写角度来说首字母简写也是 DNS),中文叫域名系统,是互联网中的核心基础设施,它负责域名和对应的 IP 地址的映射。

简单点说 DNS 就相当于整个网络世界的通讯录,Host 主机相当于房子,IP地址相当于门牌号,通过门牌号也能直接找到朋友家,但是当朋友变多了就记不住这么多门牌号了,但是我知道朋友的名字(就相当于域名),这下想要去谁家,就先打个电话问下 DNS:我想去我的朋友小花家,DNS里就能找到你朋友家对应的门牌号,然后你就可以直接去了。

在1983年,美国人保罗·莫卡派乔斯最早提出了关于域名系统的详细架构,并开发了世界上第一个DNS域名系统服务器:Jeeves。在这之前如果想上网,需要依赖电脑本地的一个 hosts.txt 文本文件,文件中记录了网络地址和对应的 Host 主机名,就像下面这样的:

bash 复制代码
 # 主机地址      主机名      状态
 43 decimal     ucla       ACTIVE   # 美国加州大学洛杉矶分校的主机
 44 decimal     sri        ACTIVE   # 美国斯坦福研究院的主机
 45 decimal     ucsb       ACTIVE   # 美国加州大学圣巴巴拉分校的主机
 46 decimal     utah       ACTIVE   # 美国犹他大学的主机

这里的主机地址是NCP协议,所以看着和咱们现在的IP地址不一样。这个文本文件是需要人工手动维护的,如果哪个地址有更新就需要在自己电脑上手动更新。(关于hosts.txt的原始资料:github.com/ttkzw/hosts...

早期计算机只有大学或科研机构使用,用户也只有科研人员,整个网络里的Host也有限,大家可能都相互认识。随着接入网络里的主机增多,还有个人电脑的兴起,靠人工手动来维护整个网络世界的通讯录显然不现实,这也是后面IP、域名和DNS诞生的缘由。

尽管现在我们上网已经不需要自己手动维护 hosts.txt 文件,但是现在的电脑里依然能找到这一历史技术的痕迹,也就是我们现在电脑上的 hosts 文件,windows在这个目录下 C:\Windows\System32\drivers\etc\hosts ,macOS和Linux在这个目录下 /etc/hosts

bash 复制代码
127.0.0.1       localhost
::1             localhost

# 其他示例
192.168.1.1    cafe123.cn

默认只有本地回环地址 127.0.0.1 的映射,也就是让你在浏览器中输入 localhost 的时候能直接访问自己的本地主机设备,常用于本地开发,比如前端开发常用的 localhost:8080。

其实你也可以自己随便修改成 xiaoming,这样你在浏览器里输入 xiaoming:8080 也能访问你本地的服务。

除此之外,还可以用来解决网络访问问题,比如很多人访问 github 比较慢或者打不开,就可以通过修改自己本地电脑上 hosts 文件的方式解决。

当请求网络的时候,我们的电脑会先查看本地的 hosts 文件,如果里面已经记录了对应地址,那就不会再去向 DNS 服务器询问你朋友家的门牌号,而是直接去到对应的 Host 主机。

相关推荐
IT_陈寒3 小时前
React 19重磅前瞻:10个性能优化技巧让你少写30%的useEffect代码
前端·人工智能·后端
咖啡教室3 小时前
每日一个计算机小知识:UDP
后端·网络协议
咖啡教室3 小时前
每日一个计算机小知识:HTTP
后端·http·https
武子康3 小时前
大数据-135 ClickHouse 集群连通性自检 + 数据类型避坑实战|10 分钟跑通 ON CLUSTER
大数据·分布式·后端
咖啡教室3 小时前
每日一个计算机小知识:TCP
后端·tcp/ip
coderhuo4 小时前
libuv spin空转导致的cpu消耗问题
后端
绝无仅有5 小时前
用友面试题解析:项目介绍、Dubbo、MQ、分布式事务、分布式锁等
后端·面试·github
绝无仅有6 小时前
京东面试题解析:SSO、Token与Redis交互、Dubbo负载均衡等
后端·面试·github
懒惰蜗牛6 小时前
Day44 | J.U.C中的LockSupport详解
java·开发语言·后端·java-ee