Подтвердить что ты не робот

Почему 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...). Такая же проблема.

4b9b3361

Ответ 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
  • удаление истории просмотров, кеша, куки

Решение: в полной нелогичности:

Удалите доменные имена из списка доверенных сайтов!

  1. Откройте диалоговое окно Internet Options (просто спросите Cortana или используйте windowskey + s)
  2. Перейти на вкладку Безопасность
  3. Нажмите на зону надежных сайтов
  4. Нажмите кнопку Сайты
  5. Удалить проблемные доменные имена из списка доверенных сайтов
  6. Нажмите Применить, а затем закройте диалоговое окно.
  7. Откройте Edge (или перезапустите его, если он уже запущен)
  8. альт

Должен отметить, что, исходя из здравого смысла, решил, что причиной проблемы стала не только тот факт, что сайт просто присутствовал в зоне "Надежные сайты". Я подумал, что это была какая-то обстановка в этой зоне. Итак, перед тем, как удалить доменные имена из списка "сайтов", я сделал все настройки точно соответствующими настройкам моей зоны Интернета (средний уровень безопасности, включите защищенный режим, не требуется проверка сервера для всех сайтов), и я также попытался любая другая комбинация, которую я мог найти. Не было никакой комбинации настроек безопасности зоны, которая работала. Единственным решением было просто полностью удалить домены из списка надежных сайтов. Самое смешное, что он работает в 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. Это то, что я сделал:

  • Откройте "Свойства обозревателя" и выберите "Локальная интрасеть"

введите описание изображения здесь

  1. Нажмите "Сайты"

введите описание изображения здесь

  1. Нажмите "Автоматически обнаруживать сеть интрасети"

введите описание изображения здесь

  1. Нажмите "ОК". Попробуйте свой локальный сайт в 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 сеть со страницы настроек сети и перезапустил мой компьютер, и все, что было, вернулось к работе, как это было раньше.