在 Windows 上使用 hosts 文件 18 年后,我很惊讶地在 Windows 7 build 7100 中看到了这一点:
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
有人知道吗为什么为何要引入这一变化?我确信其中必有某种理由。
也许更相关的是,有没有其他Windows 7 中与 DNS 相关的重大变化?想到本地主机名称解析这样基本的东西都发生了变化,我有点害怕……这让我认为 Win7 中的 DNS 堆栈还有其他微妙但重要的变化。
答案1
我向 Windows 团队的一名开发人员进行了核实,实际答案比这篇文章的其他答案更加无害:)
在未来的某个时候,随着世界从 IPV4 过渡到 IPV6,那些想要简化其环境中的网络管理的公司最终将会禁用/卸载 IPV4。
在 Windows Vista 中,卸载 IPv4 并启用 IPv6 后,对 A(IPv4)地址的 DNS 查询会导致 IPv4 环回(来自 hosts 文件)。当未安装 IPv4 时,这当然会导致问题。解决方法是将始终存在的 IPv4 和 IPv6 环回条目从主机移到 DNS 解析器中,在那里可以单独禁用它们。
-肖恩
答案2
答案3
鉴于 Windows 上越来越多的应用程序使用 IP 进行自我对话,可能包括许多 Windows 服务,我可以看到有人将 localhost 更改为指向其他地方,这是一个有趣的攻击媒介。我猜这是微软的一部分星光大道。
答案4
不过,我很好奇是否可以在 DNS 中重新定义 localhost。使用明文文件来管理这些设置从来都不能被视为最佳安全做法。在我看来,微软的新安全措施不仅限于阻止 root 访问,还更深入地研究了细微的漏洞。无论如何,我不确定一个人能在多大程度上领先于有动机的黑帽黑客。