У меня есть локальная веб-служба, прослушивающая 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 игнорирует файл hosts для поддоменов localhostкоторый указывает на баг-трекер хрома 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