在最近将 Chrome 更新到 v73 之后,Chrome 不再使用我的主机文件作为 IPv6 地址。我有一个条目,如:
::1 some-project.test
试图去https://some-project.test
结果ERR_NAME_NOT_RESOLVED
。如果我将条目更改为127.0.0.1
,主机名将解析。
我的主机文件条目没有问题。它在以前版本的 Chrome 上运行了几个月。我可以 ping 通some-project.test
。Firefox 工作正常。我什至可以运行像 Fiddler 这样的代理,而 Chrome 可以通过这种方式访问它。我只是不能直接使用 Chrome。
有什么解决这个问题的建议吗?
更新:这似乎取决于我所连接的网络。从公共 WiFi 网络回到家后,这又能正常工作了。我不确定这怎么可能……主机文件不应该覆盖 DNS 中的任何内容吗?而且,Chrome 不应该使用系统解析器吗?系统上的其他一切都可以正常工作。
更新 2:回到家庭有线以太网……又坏了。问题是间歇性的。
Chrome 中有一个已知错误可能会导致您的问题:
Issue 530482: Can't reach private IPv6 hosts on networks without global IPv6 connectivity。
错误报告中的讨论阐明了 Chrome 会启动 IPv6 探测,通过检查远程地址来确定是否支持 IPv6。如果该 IPv6 探测失败,Chrome 将屏蔽任何其他 IPv6 结果,实际上禁用 IPv6 并永远忽略它。
然后的解释是,如果网络上的 IPv6 支持很粗略,那么 Chrome 完成的这个初始 IPv6 探测失败,Chrome 将完全禁用 IPv6 解析,包括从
hosts
文件解析本地 IPv6。提到的解决方法是:
错误报告末尾提到了其他更有限的解决方法。
该错误报告的日期是 2015 年,但在 2019 年 5 月仍然存在,因此目前可能正在处理中。
您的
hosts
文件应该是一致的,例如;localhost
是127.0.01
。然后也some-project.test
应该可用,因为 IPv6 地址通常和传统上也指向IPv4 地址。因为并非所有系统都必须具备IPv6 能力——是的,即使在当今时代也是如此。:)127.0.0.1
::1
localhost
127.0.0.1
问题
localhost
是,这test
是一个 TLD(就像 .com)。我建议的
hosts
文件:明白我在说什么吗?一些应用程序(和操作系统)假设有一个
localhost
“主机”。所以你可能会发现你需要一个条目——见;在上面的例子中是可选的。最后。确保您的解析器刷新它的 DNS 缓存。至于你的系统。它应该立即看到更改。但是你应该先检查一下。