Почему Microsoft Edge открывает некоторые локальные веб-сайты, но не другие, где доменное имя маршрутизируется до 127.0.0.1 в файле hosts
Как и многие программисты, я тестирую сайты локально.
Я использую файл hosts для сопоставления доменных имен с моим локальным ip (127.0.0.1).
Я использую квалифицированные доменные имена, обычно с поддоменом "d" (для "разработки" ).
Например:
d.somewebsite.com
d.anotherwebsite.com
and so on...
В Microsoft край, большинство веб-сайтов работают. Однако, некоторые из них этого не делают. Нет ничего особенного или странного в отношении доменных имен, которые не будут работать. Просто прост d.someletters.com
.
Они отлично работают в Chrome, IE и Firefox.
В Edge появляется сообщение об ошибке:
"Хм, мы не можем добраться до этой страницы".
Сначала я думал, что это не решение IP. Однако я понял, что когда я сделал опечатку на другом не связанном URL-адресе, запросы, которые не были перенаправлены файлом hosts, отправляются моему ISP, который будет разрешен. Если мой интернет-провайдер не сможет его решить, они отправят страницу с результатами специальных поисковых запросов с предложениями о том, что вы пытаетесь найти. Ну, когда я перехожу в свой локальный домен, я не получаю эту страницу от своего интернет-провайдера. Я получаю ошибку, упомянутую выше, прямо от края.
Итак, мне кажется, что Edge правильно разрешает домен, иначе он был бы отправлен на мой DNS-сервер ISP.
Итак, я подумал бы, что, возможно, Edge просто не может подключиться к локальной машине. Но, как я уже сказал, некоторые из этих локальных доменов работают нормально. Кроме того, работает 127.0.0.1 непосредственно в Edge. Это всего лишь пара доменных имен, которые дают мне проблему. И только в Edge (все остальные браузеры работают) Любые идеи?
Веб-сервер Apache2 для Windows (xampp), если это имеет значение.
Кроме того, если я открываю окно отладки в Edge и отслеживаю сеть, я вообще не вижу никаких запросов.
EDIT: я больше не использую файл hosts. У меня есть dnsmasq, работающий на одном из моих Linux-ящиков, и я использую его для DNS вместо хостов. Кроме того, вы не используете loopback (очевидно, поскольку DNS находится в другом окне сейчас), я использую внутренний частный IP-адрес (192.168...). Такая же проблема.
Ответы
Ответ 1
-
Ваша сеть может блокировать петлю в качестве меры безопасности в Windows 10.
-
Откройте командную строку от имени администратора и выполните эту команду, чтобы исключить Edge из обратной циклы:
CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
(Microsoft.MicrosoftEdge_8wekyb3d8bbwe
является идентификатором приложения Edge)
Здесь есть запись в блоге, где приводится более подробная информация: https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/
Ответ 2
Я (думал, что я) решил это!
Вещи, которые не работали:
- Внесение изменений в настройки совместимости IE или списки совместимости Windows
- Использование полных доменных имен
- Использование IP-адреса, отличного от loopback
- используя http против https
- удалить все javascript и межсайтовые скрипты/ресурсы с веб-страницы
- отметьте/снимите флажок в about: flags для разрешения обратной связи localhost или использования настроек совместимости
- удаление/добавление/редактирование записей в TabProcConfig реестра Windows
- удаление истории просмотров, кеша, куки
Решение: в полной нелогичности:
Удалите доменные имена из списка доверенных сайтов!
- Откройте диалоговое окно Internet Options (просто спросите Cortana или используйте windowskey + s)
- Перейти на вкладку Безопасность
- Нажмите на зону надежных сайтов
- Нажмите кнопку Сайты
- Удалить проблемные доменные имена из списка доверенных сайтов
- Нажмите Применить, а затем закройте диалоговое окно.
- Откройте Edge (или перезапустите его, если он уже запущен)
- альт
Должен отметить, что, исходя из здравого смысла, решил, что причиной проблемы стала не только тот факт, что сайт просто присутствовал в зоне "Надежные сайты". Я подумал, что это была какая-то обстановка в этой зоне. Итак, перед тем, как удалить доменные имена из списка "сайтов", я сделал все настройки точно соответствующими настройкам моей зоны Интернета (средний уровень безопасности, включите защищенный режим, не требуется проверка сервера для всех сайтов), и я также попытался любая другая комбинация, которую я мог найти. Не было никакой комбинации настроек безопасности зоны, которая работала. Единственным решением было просто полностью удалить домены из списка надежных сайтов. Самое смешное, что он работает в IE независимо от того, хотя это диалоговое окно настроек Интернета для IE. Это, кажется, влияет только на Edge.
![Windows 10 Internet Options]()
![Remove Trusted Sites from the Trusted Zone]()
РЕДАКТИРОВАТЬ: Две недели спустя я изменяю свою конфигурацию, чтобы вместо файла hosts использовать dnsmasq на локальной машине Linux и использовать его для DNS. Я не уверен, произошло ли это сразу, но в какой-то момент Эдж перестал работать снова! У меня уже был установлен флажок "allow loopback" about: flags, поэтому я не ожидал, что исправление CheckNetIsolation сработает. Но это так. Версия Edge 20.10240.16384.0. Я использовал исправление из Не могу открыть localhost в Microsoft Edge (Project Spartan) в предварительном просмотре Windows 10
РЕДАКТИРОВАТЬ # 2 Пару месяцев спустя, и у Эджа снова возникла эта проблема. Я попробовал оба предыдущих решения (и другие), и ни одно из них больше не работает для меня. Я оставляю этот ответ, потому что я предполагаю, что у меня возникли две отдельные проблемы.
Ответ 3
Edge не поддерживает IP-адреса VPN, поэтому в любом обходном пути необходимо использовать какой-то прокси-сервер. Вот некоторые из решений, которые я нашел:
-
Установите и запустите fiddler
. Fiddler будет в основном перехватывать запрос из браузера, а затем перенаправлять его в пункт назначения. Это самый простой способ обхода.
-
Настройте прокси-сервер через встроенный инструмент Windows: netsh
. Основные этапы включают назначение вашего домена разработки доступному локальному частному IP-адресу в диапазоне 127.0.0.0/8
, а затем сопоставление этого IP-адреса с IP-сервером в VPN. См. Пошаговые инструкции здесь
-
Используйте функцию переадресации портов для ssh для настройки прокси. Предполагая, что порт 80 доступен на локальном хосте, добавьте 127.0.0.1 d.somewebsite.com
в свой файл хоста, затем запустите следующую команду ssh: ssh -L localhost:80:localhost:80 [email protected]
, где devwebserver
- имя хоста вашего веб-сервера разработки (скажем, в виртуальном или бродяжном экземпляре или через VPN). Этот параметр предполагает, что у вас есть ssh-доступ к серверу dev.
Ответ 4
Решение "удалить из надежных сайтов" не работает для меня, потому что мои локальные сайты не были на моих надежных сайтах.
Но вы заставили меня посмотреть параметры Интернета, и мне удалось заставить IIS работать на локальных сайтах для меня в Windows 10. Это то, что я сделал:
- Откройте "Свойства обозревателя" и выберите "Локальная интрасеть"
![введите описание изображения здесь]()
- Нажмите "Сайты"
![введите описание изображения здесь]()
- Нажмите "Автоматически обнаруживать сеть интрасети"
![введите описание изображения здесь]()
- Нажмите "ОК". Попробуйте свой локальный сайт в Microsoft Edge, и теперь он должен работать.
Ответ 5
Может не относиться к вашей ситуации, но тем не менее. Моя установка была следующей. Страница адреса публичного пространства (Интернет) пыталась загрузить страницу с адресом частного пространства (интрасеть) в iframe, и Edge отказывался загружать страницу интрасети с тем же сообщением "Хм, мы не можем добраться до этой страницы", и с "Ошибка SEC7117" в консоли отладки. Оказывается, Edge не нравится смешивать зоны Интернета и интрасети (причины этого см. В блоге " Понимание блога в расширенном защищенном режиме"). Edge запускает вкладки в отдельных AppContainer, а сетевые ограничения AppContainer зависят от конфигурации вашей сети.
Мое решение состояло в том, чтобы вывести сервер, на котором размещалась рассматриваемая страница интрасети, из доменной сети, назначив ему второй IP-адрес частного пространства, и создать вторую запись DNS для этого IP-адреса. Сервер в конечном итоге имеет 2 IP-адреса: один в доменной сети и один альтернативный и 2 разных DNS-записи. Затем Edge указывает на альтернативный URL и начинает нормально загружать страницу интрасети. Кажется, если IP-маски ПК и URL-адрес страницы не совпадают, Edge будет загружать страницу.
В сообщении блога, о котором я упоминал, есть информация о блокировке Loopback для localhost и отсутствии возможности privateNetworkClientServer в IE. Насколько я могу судить, вся эта информация относится к Edge.
Ответ 6
Когда это произойдет со мной, я могу найти запись домена в разделе реестра ниже, которая соответствует домену. Когда я удаляю, все работает, на какое-то время... Я не знаю, почему, но Edge добавит его в конце концов.
Компьютер\HKEY_USERS\S-1-5-21-964789662-521690395-1734141374-1111\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Storage\microsoft.microsoftedge_8wekyb3d8bbwe\MicrosoftEdge\TabProcConfig
Ответ 7
Ни один из других решений не работал у меня. Оказывается, моя проблема связана с VPN. Microsoft Edge по-прежнему не поддерживает IP-адреса VPN, в то время как Internet Explorer 11 делает это. Впечатляет, что это все еще проблема с мая 2016 года.
Дополнительная информация:
https://social.technet.microsoft.com/Forums/en-US/b3a687ae-345d-4c3f-9070-184b33fb1fc6/microsoft-edge-cant-access-vpn-ip-address-but-ie-11-can?forum=win10itprogeneral
В настоящее время Microsoft Edge не работает с VPN. И механизм подключения к Интернету от Microsoft Edge немного отличается от Internet Explorer 11 и других настольных браузеров, о которых я не могу объяснить, поскольку я мало что знаю об этом.
Итак, исходя из текущей ситуации, используйте вместо этого Internet Explorer 11.
Ответ 8
В моем случае смена типа сети с частной на публичную сделала свое дело. Это также воспроизводимо, и изменение типа сети надежно изменяет состояние с "работающего" на следующее: Http failure response for (unknown url): 0 Unknown Error
Ответ 9
Исходя из ваших правок, вы обращаетесь к сайту по адресу 192.168.0.0/16, а не по 127.0.0.1. Я предполагаю, что у вас возникла проблема с поведением браузера Edge по-разному в зависимости от интерфейса, используемого для доступа. сайт. Другие браузеры, которые я пробовал, не ведут себя таким образом.
В моей среде у меня была настройка сети только для хоста Virtualbox, и NdisDeviceType был равен 1. Edge позволял бы мне переходить на сайты через этот интерфейс только после того, как я изменил NdisDeviceType на 0. Ключ реестра, который вам нужен:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\XXXX
Вместо XXXX вам нужен правильный ключ для вашего интерфейса, который я определил из "маршрута печати" и вычел 1. Для меня это был "0016".
Значение для изменения называется *NdisDeviceType
. (Это буквальная звездочка.) Я изменил его с 0 на 1, и пришлось перезагрузить Windows, чтобы заметить это изменение.
Мой ответ был получен из сообщения "Jani L" от 3 октября 2017 года. Я также опубликовал это решение более подробно на fooobar.com/questions/2345252/.... Также см. Билет Virtualbox 15565.
Ответ 10
Для меня я перешел в "Свойства обозревателя" (панель управления), затем "Безопасность", затем выбранную локальную интрасеть, а затем поместил галочку в "Автоматически обнаруживать сеть интрасети". В этом случае greyed вложенные параметры ниже, и Edge немедленно начал использовать мой файл hosts.
Ответ 11
Что-то подобное произошло со мной, я просто reset сеть со страницы настроек сети и перезапустил мой компьютер, и все, что было, вернулось к работе, как это было раньше.