Chrome 80 可以將未配置的本機主機名稱解析為 ::1

Chrome 80 可以將未配置的本機主機名稱解析為 ::1

我有一個本機 Web 服務偵聽 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 瀏覽器如何解析主機檔案中未配置的主機名,以及如何停用此行為。
我使用的是 chrome 版本 80.0.3987.132(官方版本)(64 位元),我的作業系統是 windows 10

更新 我在這裡找到了答案Chrome 忽略 localhost 子網域的主機文件它指向 chromium bug tracker https://bugs.chromium.org/p/chromium/issues/detail?id=489973 另一個相關問題 https://bugs.chromium.org/p/chromium/issues/detail?id=455825

Chrome 不再依賴主機文件,它將強制 localhost 和 *.localhost 主機名稱始終解析為環回位址,如https://www.rfc-editor.org/rfc/rfc6761#section-6.3

答案1

出於安全原因,Chrome 會覆蓋 localhost 網域,完全忽略主機檔案和 dns 查找。

答案2

我遇到了類似的問題,然後轉到“設定”->“隱私和安全性”->“安全瀏覽”,在那裡我將其從“標準保護”設定為“無保護”。然後我的 /etc/host 檔案中的位址起作用了,包括類似的位址127.0.0.1 some.domain.org

相關內容