重复的 NT 主机文件条目的预期行为?

重复的 NT 主机文件条目的预期行为?

我知道您的 Windows NT 主机文件中不应该有重复的条目,windows\system32\drivers\etc\hosts但是如果有的话,预期的行为是什么?

Windows NT hosts 文件 ( windows\system32\drivers\etc\hosts) 中可以有多个具有相同主机名但不同地址的条目。当您在网络上访问该主机时,Windows DNS 系统会将其解析为其中一个条目。我如何知道将使用哪个条目?

例如:

127.0.0.1    mydomain.com
192.168.1.1  mydomain.com

编辑:这个特定示例似乎强制了特殊行为。回送似乎会覆盖任何条目,无论顺序如何。

或者:

192.168.1.2  mydomain.com
192.168.1.1  mydomain.com

我看到列表中的第一个条目优先。

但是,我看到的行为是否有保证,是否特定于版本,或者通常不可靠?

我之所以问这个问题是因为我正在编写一些脚本来处理主机,并且我试图弄清楚我是否可以可靠地选择其中一个进行删除/注释掉,并且希望不会对用户的系统造成影响。

答案1

仅读取第一个。解析名称后,将不再读取该文件。

答案2

允许使用同一个域名的多个条目,这在某些情况下很有用。

正如我在问题中所述,在“正常”情况下,如果这些地址可以通过同一个适配器访问,则第一个地址似乎是被占用的地址。但如果其中一个条目是 loopback ( 127.0.0.1),则它可能会优先。

有时,即使没有一个地址属于环回适配器,拥有多个具有相同域名的条目也是有意义的。如果计算机是多主计算机或多寻址计算机。 (谢谢杰德BP请参阅我的 OP 评论中的信息)。

如果每个地址都映射并在单独的行中使用,则单个 DNS 主机名可以对应多个 IP 地址。例如,您可以为以下多宿主或多寻址 DNS 主机添加行:

10.0.0.1  host-a.example.microsoft.com
10.0.0.2  host-a.example.microsoft.com
10.0.0.3  host-a.example.microsoft.com

我相信适配器偏好/优先级可能在这里发挥作用(您可以在网络设置中设置),尽管我无法测试它。环回很可能总是在适配器偏好中排在第一位。

答案3

我 5 分钟前尝试过,它以以下方式在没有 DNS 服务器的情况下运行到 Windows Hosts 文件中:

ip1,ip2,ipx 要解析的名称

抱歉我的英语...

答案4

> 环回似乎会覆盖任何条目,无论顺序如何。

您是否确保在进行更改后关闭并重新运行客户端(浏览器?)?如果没有,那么它很可能仍在使用旧值,并且直到重新启动后才能按顺序看到更改。此外,如果您正在运行 DNS 客户端服务,旧值将被缓存,因此您将看不到更改。

我做了一些测试,似乎第一个条目总是被使用的。

确保重新启动客户端,以确保它正在重新读取 HOSTS 文件,并且如果您正在运行 DNS 客户端服务,也请运行ipconfig /flushdns

相关内容