DNS 将域名解析为 IP 地址,那么为什么我们需要在机器中使用带有域名 -> IP 地址映射的 hosts 文件?一个缺点是 IP 地址可能会改变。
我们为什么需要 hosts 文件?
答案1
过去,人们使用 Hosts 文件来提供一种更简便的主机引用方式:你可以为其创建别名,而不用修饰数字。
事情变得越来越大,难以维护,特别是在做出更改时:您必须更新网络中每台计算机的主机文件,并且当某些计算机更新而其他计算机未更新时可能会出现问题。
因此 DNS 出现了,让一切变得简单多了。但没有人有义务消除主机文件。没有关于 DNS 服务器位置的通用定义,也没有关于如何广播请求以查找这些 DNS 服务器的协议规范。因此,可以使用主机文件来指示在哪里查找 DNS 服务器,然后让 DNS 服务器处理所有其他查询。
Hosts 文件也可以被视为一种安全措施:它由计算机的系统管理员控制,因此被认为是安全的:修改它的人应该知道自己在做什么。即使在 DNS 服务器受到威胁的情况下,Hosts 文件仍是值得信赖的。
答案2
有两个重要原因。一是提供任何应优先于 DNS 的本地覆盖。二是 100% 确保在机器可能无法访问 DNS 服务器的情况下能够解析关键 IP 地址映射。
从历史上看,hosts 文件早于 DNS。早在 DNS 出现之前,每个人都从中央存储库下载最新的 hosts 文件。
答案3
假设你已经读过维基百科链接。我认为拥有一个纯文本文件,您可以使用它来将任何域指向您喜欢的任何 IP,这比向 DNS 服务器添加记录要方便得多。想象一下您是一名开发人员,试图制作一个伪造 example.com(或任何其他域)的花哨应用程序。编辑本地主机文件并更改主机名更容易,这样当您将浏览器指向子域时,它会转到您自己的应用程序:
127.0.1.1 www.example.com mobile.example.com etc.example.com
答案4
我确信 hosts 文件还有一些更不为人知的来源,因为大多数当今操作系统都有一个 (*nix、BSD、Windows),但它们在您需要使用本地记录覆盖已发布的 (权威) DNS 以进行测试、故障排除或其他类似任务的情况下很有用。