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.

Что не сработало

Ничто из следующего не помогло мне:

  1. Использование about:flags и подтверждение того, что "allow localhost loopback" был включен

  2. Панель управления, Сеть и Интернет, Свойства обозревателя, Безопасность и явное добавление моего сайта в Надежные сайты или Локальный Интернет.

  3. 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 и т. Д.

Что сработало

Решение заключается в следующем:

  1. Найдите номер интерфейса для сети только хоста. Я запустил "route print" из командной строки Windows, и первое число, показанное в "списке интерфейсов", в моем случае было 17.

  2. Используйте 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/

https://social.technet.microsoft.com/Forums/en-US/0face535-3c7a-4658-be34-6c376322ca34/microsoft-edge-cant-open-local-domains

https://www.virtualbox.org/ticket/15565

Кажется, вы используете коробку Laravel Homestead. Если это так, вы можете перенаправить один из портов вашего хоста на порт 80 вашей виртуальной машины. Таким образом, вы сможете получить доступ к веб-сайтам, размещенным на вашей виртуальной машине в MS Edge.

Вот что я сделал:

ports:
    - send: 8000
      to: 80

Если вы не хотите вводить yourdomain.dev:8000, вы можете использовать fiddler. Таким образом, вы сможете набрать только yourdain.dev.:D

Другие вопросы по тегам