Chrome 80 可以将未配置的本地主机名解析为 ::1

Chrome 80 可以将未配置的本地主机名解析为 ::1

我有一个本地网络服务在 0.0.0.0:8080 上监听,当从 chrome 访问时,我使用了 abc.localhost:8080/someWebPage,chrome 能够将主机名 abc.localhost 解析为 ::1,而其他浏览器则不能。

这是我的 /etc/hosts

127.0.0.1       localhost
::1             localhost
127.0.0.1       subdomain1.localhost

我在 Chrome 设置中的“隐私和安全”部分中禁用了“预加载页面以加快浏览和搜索速度”选项。

我从 chrome://net-internals/#dns 清除了主机缓存,并执行了 ipconfig /flushdns 命令

以下是来自 chrome netlog 的片段,显示 abc.localhost 已解析为 ::1 :

abc.localhost:8080
Start Time: 2020-03-18 12:52:49.027

t=2574 [st=   0] +SOCKET_ALIVE  [dt=1897+]
                  --> source_dependency = 29267 (TRANSPORT_CONNECT_JOB)
t=2574 [st=   0]   +TCP_CONNECT  [dt=1]
                    --> address_list = ["[::1]:8080","127.0.0.1:8080"]
                    --> canonical_name = ""
t=2574 [st=   0]      TCP_CONNECT_ATTEMPT  [dt=1]
                      --> address = "[::1]:8080"
t=2575 [st=   1]   -TCP_CONNECT
                    --> source_address = "[::1]:64756"
t=2575 [st=   1]   +SOCKET_IN_USE  [dt=56]

有人能解释一下 Google Chrome 浏览器如何解析未在 hosts 文件中配置的主机名,以及如何禁用此行为吗?
我使用的是 Chrome 版本 80.0.3987.132(官方版本)(64 位),我的操作系统是 Windows 10

更新 我在这里找到了答案Chrome 忽略 localhost 子域的 hosts 文件指向 chromium 错误跟踪器 https://bugs.chromium.org/p/chromium/issues/detail?id=489973 另一个相关问题 https://bugs.chromium.org/p/chromium/issues/detail?id=455825

Chrome 不再依赖 hosts 文件,它将强制将 localhost 和 *.localhost 主机名始终解析为环回地址,如https://www.rfc-editor.org/rfc/rfc6761#section-6.3

答案1

Chrome 会覆盖 localhost 域,出于安全原因将完全忽略 hosts 文件和 dns 查找。

答案2

我遇到了类似的问题,然后转到“设置”->“隐私和安全”->“安全浏览”,在那里我将它从“标准保护”设置为“无保护”。然后我的 /etc/host 文件中的地址就可以正常工作了,包括以下地址127.0.0.1 some.domain.org

相关内容