Microsoft Edge не будет загружать локальный веб-сайт nginx в Vagrant VM
Я испытываю странную проблему, когда Microsoft Edge не загружает локальный веб-сайт Craft CMS, размещенный на бродячей виртуальной машине. Любая попытка загрузить локально настроенное имя хоста или IP-адрес возвращает "Хм, мы не можем попасть на эту страницу". ошибка.
У меня есть строка в моем файле hosts:
192.168.10.12 test.craft.dev
Я читал различные ресурсы о том, что Microsoft Edge неправильно обрабатывает файл hosts, однако даже IPv4-адрес не работает. Я испробовал несколько рекомендаций, связанных с настройками Internet Options, но ничего не работает, похоже, что файл hosts не является проблемой.
Конфигурация сети использует NAT и устанавливает IP в диапазоне 192.168.10.x
(определяется Homestead.yaml
, если я назначу public_network и получу IP-адрес с диапазоном DHCP моей локальной сети, Edge может получить доступ к этому IP-адресу, но это не объясняет, почему все другие браузеры работают, а Edge - без него.
Стоит отметить, что локальное имя хоста Craft будет нормально загружаться в любом другом браузере (включая IE). Есть ли у Microsoft Edge особые проблемы с загрузкой локальных веб-сайтов внутри VirtualBox из-за проблем с сетевым уровнем?
3 ответа
Установите и запустите Fiddler. Это все сделает автоматически.
Браузер Edge, похоже, обращает внимание на интерфейс, который вы используете для доступа к своим сайтам. Я предполагаю, что вы используете Vagrant для запуска виртуальной машины Virtualbox. В моем ответе ниже предполагается, что вы осуществляете доступ через сеть только для хоста Virtualbox или какой-либо другой сетевой интерфейс, имеющий NdisDeviceType, равный 1.
Что не сработало
Ничто из следующего не помогло мне:
Использование about:flags и подтверждение того, что "allow localhost loopback" был включен
Панель управления, Сеть и Интернет, Свойства обозревателя, Безопасность и явное добавление моего сайта в Надежные сайты или Локальный Интернет.
CheckNetIsolation LoopbackExempt -a -n = "Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
Моя среда
В моем случае VirtualBox 5.2.18 работает под управлением Windows 10 build 1803 "Spring Creators Update". Используя Edge 42.17134.1.0. У меня есть сеть только для хоста для моих гостей VM. например, 192.168.7.0/24. Я не мог получить доступ к адресам из моего Edge на хосте VM, например http://192.168.7.0
, Этот сайт был размещен на веб-сервере, работающем в моей гостевой виртуальной машине. Обратите внимание, что этот адрес отлично работал в Google Chrome, Internet Explorer 11 и т. Д.
Что сработало
Решение заключается в следующем:
Найдите номер интерфейса для сети только хоста. Я запустил "route print" из командной строки Windows, и первое число, показанное в "списке интерфейсов", в моем случае было 17.
Используйте regedit, чтобы изменить тип интерфейса с 1 на 0. Ключ:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Class {4d36e972-E325-11CE-BFC1-08002BE10318}\XXXX
В моем случае XXXX было 0016, потому что мой номер интерфейса был 17. Я должен был изменить *NdisDeviceType
от 0 до 1. Символ * в названии ключа является буквальной звездочкой. Мне пришлось перезагрузиться, чтобы изменения вступили в силу.
Ответ был получен из сообщения "Jani L" от 3 октября 2017 года по первому URL, указанному ниже, но он не дал подсказки о том, как определить номер интерфейса. Второй ссылкой ниже была тема, в которой я первоначально разместил это решение.
Рекомендации:
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10142843/
Кажется, вы используете коробку Laravel Homestead. Если это так, вы можете перенаправить один из портов вашего хоста на порт 80 вашей виртуальной машины. Таким образом, вы сможете получить доступ к веб-сайтам, размещенным на вашей виртуальной машине в MS Edge.
Вот что я сделал:
ports:
- send: 8000
to: 80
Если вы не хотите вводить yourdomain.dev:8000, вы можете использовать fiddler. Таким образом, вы сможете набрать только yourdain.dev.:D