Чому Microsoft Edge відкриває деякі локальні веб-сайти, але не інші, де доменне ім'я перенаправлено на 127.0.0.1 у файлі hosts


75

Як і багато програмістів, я тестую сайти локально.
Я використовую файл hosts для зіставлення доменних імен з моїм локальним ip (127.0.0.1).

Я використовую кваліфіковані доменні імена, як правило, з субдоменом "d" (для "розробки").

Наприклад:

d.somewebsite.com 
d.anotherwebsite.com 
and so on...

У Microsoft edge більшість веб-сайтів працюють. Однак пара з них цього не робить. У доменних іменах немає нічого особливого чи дивного, що не буде працювати. Просто простий d.someletters.com.

Вони чудово працюють у Chrome, IE та Firefox.

У Edge я отримую повідомлення про помилку: "Хм, ми не можемо перейти на цю сторінку".

Спочатку я думав, що це не вирішення ІР. Однак я зрозумів, коли зробив друкарську помилку на іншій не пов’язаній URL-адресі, що запити, які не маршрутизуються файлом hosts, надсилаються моєму провайдеру для вирішення. Якщо мій постачальник послуг Інтернету не може вирішити проблему, він надсилає цю спеціальну сторінку результатів пошуку із пропозиціями щодо того, що ви, можливо, намагаєтесь знайти. Ну, коли я переходжу до свого локального домену, я не отримую цю сторінку від свого провайдера. Я отримую згадану вище помилку прямо з краю.

Отже, мені здається, що Edge правильно вирішує домен, інакше його відправили б у DNS мого провайдера.

Тоді я міг би подумати, що, можливо, Edge просто не може підключитися до локальної машини. Але, як я вже сказав, деякі з цих локальних доменів працюють нормально. Крім того, використання 127.0.0.1 безпосередньо в Edge також працює. Ось лише ці кілька доменних імен викликають у мене проблему. І лише в Edge (всі інші браузери працюють) Будь-які ідеї?

Веб-сервер - Apache2 для Windows (xampp), якщо це важливо.

Крім того, якщо я відкриваю вікно налагодження в Edge і стежу за мережею, я взагалі не бачу жодних запитів.

EDIT: Я більше не використовую файл hosts. У мене є dnsmasq, який працює на одному з моїх ящиків Linux, і я використовую його для DNS замість хостів. Також більше не використовую loopback (очевидно, оскільки DNS зараз на іншому полі), я використовую внутрішню приватну ip-адресу (192.168 ...). Те саме питання.


Практично впевнений, що це пов’язано з налаштуваннями подання сумісності, подібними до IE. Я можу перемикати його вперед-назад на IE. Не впевнений, де варіант знаходиться на краю.
Діпен Шах

Думаю, ви використовуєте це: microsoft.com/en-us/download/… , я намагаюся зараз з’ясувати, чи є ці домени в списку з якихось причин ...
Еван де ла Круз,

Дякую за вашу допомогу, але я не думаю, що це все. У моїх списках сумісності для IE чи "Режиму підприємства" (система сумісності Edge thingy) немає сайтів
Еван де ла Круз,

Вибачте, справді не впевнений тоді.
Діпен Шах

2
Просто стикаюся з цією проблемою сам. Жодне з описаних тут виправлень не спрацювало, але я відкрив Fiddler (HTTP-налагоджувач), і тоді він працював нормально. Тож обхідним шляхом є встановлення Fiddler і його завжди відкривати під час тестування в Edge. Але я не впевнений, як Fiddler змушує Edge працювати - якщо Edge зазвичай не надсилає запит, то чому додавання проксі-сервера змушує його надсилати запит?
Дейв Кеннард

Відповіді:


122
  • Ваша мережа може заблокувати зворотний зв’язок як засіб безпеки в 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/


14
Де цей шалений ідентифікатор знайдений / задокументований?
mlhDev

1
Це не спрацювало для мене, але маючи запуск скрипаля, це дивно.
Даніель Джексон,

2
Працює для мене. Я знайшов це задокументованим у developer.microsoft.com/en-us/microsoft-edge/platform/faq/…
manavi

8
Я справді люблю Microsoft, Windows та IE / Edge. Кожен інший браузер працював чудово, але для запуску Edge потрібен був химерний сценарій командного рядка. Не можу сказати, що це мене не дивує. Дякуємо, що поділилися відповіддю та ресурсами.
користувач

1
@Chris Halcrow Добре, я бачу, я згадував про це виправлення в іншому дописі нижче. В основному те, що я сказав, це те, що це виправлення деякий час здавалось спрацьовувати, але потім поведінка змінилася.
Еван де ла Крус,

12

Я (думав) вирішив!

Речі, які не спрацювали:

  • Внесення змін до параметрів сумісності IE або списків сумісності Windows
  • Використання повнокваліфікованих доменних імен
  • Використання IP-адреси, відмінної від зворотного зв'язку
  • використання http проти https
  • видаліть усі веб-сторінки сценаріїв / ресурсів javascript та між сайтами
  • перевірка / зняття прапорця в about: прапори для дозволу зворотного зв’язку localhost або використання параметрів сумісності
  • видалення / додавання / редагування записів у TabProcConfig реєстру Windows
  • видалення історії перегляду, кешу, файлів cookie

Рішення: у повному протиінтуїтивному стилі:

Видаліть доменні імена зі списку надійних сайтів !

  1. Відкрийте діалогове вікно Властивості браузера (просто запитайте Кортану або скористайтеся клавішами Windows + s)
  2. Перейдіть на вкладку Безпека
  3. Клацніть на довірених сайтах зону
  4. Натисніть кнопку Сайти
  5. Видаліть проблемні доменні імена зі списку надійних сайтів
  6. Клацніть Застосувати, а потім закрийте діалогове вікно
  7. Відкрийте Edge (або перезапустіть його, якщо він уже запущений)
  8. Віола

Слід зазначити, що я, користуючись здоровим глуздом, вважав, що проблемою став не лише той факт, що сайт просто був присутній у зоні "Довірені сайти". Я зрозумів, що це якась обстановка в цій зоні. Отже, перед тим, як видалити доменні імена зі списку "сайтів", я зробив так, щоб усі налаштування точно відповідали налаштуванням моєї Інтернет-зони (Середньо високий рівень безпеки, увімкнути захищений режим, не вимагати перевірки сервера для всіх сайтів), і я також спробував будь-яку іншу комбінацію, яку я міг знайти. Не було жодної комбінації зонних налаштувань безпеки, які працювали. Єдиним рішенням було просто повністю видалити домени зі списку Довірених сайтів. Забавно те, що він працює в IE незалежно, хоча це діалогове вікно налаштувань Інтернету для IE. Здається, це впливає лише на Edge.

Властивості браузера для Windows 10

Видаліть надійні сайти з довіреної зони

РЕДАГУВАТИ: Через два тижні я змінюю свою конфігурацію, щоб замість файлу hosts використовувати dnsmasq на локальній машині Linux та використовувати її для DNS. Я не впевнений, що це сталося відразу, але в якийсь момент Edge знову перестав працювати! У мене вже був встановлений прапорець "дозволити петлю" про: прапори, тому я не очікував, що виправлення CheckNetIsolation спрацює. Але, це сталося. Версія Edge - 20.10240.16384.0. Я використав виправлення з Не вдається відкрити localhost у Microsoft Edge (Project Spartan) у попередньому перегляді Windows 10

EDIT # 2 Через пару місяців і Edge знову має цю проблему. Я спробував обидва попередні рішення (та інші), і жодне з них мені більше не працює. Я залишаю цю відповідь, оскільки припускаю, що мав дві окремі проблеми.


Мені цікаво, якщо ви ввімкнете (Розширений) захищений режим (див. Останній знімок екрана), чи поводиться IE так само, як Edge? Ми натрапили на цю саму проблему (і рішення) в обох браузерах, і в IE її спричинив EPM.
nemec

Я спробував край з захищеним режимом і без нього без різниці. Я спробую IE найближчим часом і звітуватиму.
Еван де ла Круз,

Цікаво. У моєму випадку (описано в 1-й відповіді) додавання домену інтрамережі до списку Довірених сайтів через Властивості браузера не допомогло. Я вважав, що ці налаштування не стосуються браузера Edge. Але з вашої відповіді очевидно, що іноді вони це роблять.
білуга

@nemec, сайт завантажується в IE незалежно від того, які налаштування я використовую. Мушу зазначити , однак , що це після того як я побіг CheckNetIsolation , як описано в stackoverflow.com/questions/30334289 / ... , коли я змінив свою конфігурацію і краю знову зламалася.
Еван де ла Круз,

1
Так само, як ви зв’язали, рішення CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"у підвищеному командному рядку це виправляє.
Kevin Ghadyani

11

Edge не підтримує IP-адреси VPN, тому будь-яке обхідне рішення має використовувати якийсь проксі. Ось кілька рішень, які я знайшов:

  1. Встановіть і запустіть fiddler. Fiddler в основному перехоплює запит від браузера, а потім пересилає його до місця призначення. Це найпростіший спосіб вирішення проблеми.

  2. Налаштування проксі - сервера з допомогою вбудованого інструменту з Windows: netsh. Основні кроки включають присвоєння вашого домену розробки доступній локальній приватній IP-адресі в 127.0.0.0/8діапазоні, а потім зіставлення цього IP- адреси з IP-адресою веб-сервера у VPN. Дивіться тут покрокові інструкції

  3. Використовуйте функцію переадресації портів ssh для налаштування проксі-сервера. Припускаючи, що порт 80 доступний на localhost, додайте 127.0.0.1 d.somewebsite.comдо хост-файлу, а потім виконайте таку команду ssh:, ssh -L localhost:80:localhost:80 user@devwebserverде devwebserver- ім'я хосту вашого веб-сервера розробки (скажімо, у віртуальній машині, екземплярі бродяги або через VPN). Цей параметр передбачає, що у вас є доступ SSH до сервера розробників.


1
Я не використовую VPN. Що таке "IP-адреса VPN"?
Еван де ла Круз,

2
Скрипач завжди був хорошим другом, але я не очікував, що він врятує мою дупу в цьому випадку ... Я борюся з цим годинами, і це нарешті працює ... ДЯКУЮ
makak

жодне з наведених рішень не спрацювало для мене, однак скрипаль зробив цю роботу! просто встановіть його та виправте проблеми з Microsoft!
undefinedman

WTF? Я намагався знайти відповідь, чому Edge не працюватиме з веб-сервером в активному домені каталогу, і єдиним вирішенням, яке працювало, був запуск Fiddler. Я досі не розумію, що відбувається?
Райан Мортьє,

7

Ваше рішення "видалити з надійних сайтів" для мене не спрацювало, оскільки мої локальні сайти не були на моїх надійних сайтах.

Але ви змусили мене шукати Властивості Інтернету, і мені вдалося змусити IIS працювати на локальних сайтах для мене в Windows 10. Це те, що я зробив:

  1. Відкрийте "Властивості браузера" та виберіть "Локальна інтрамережа"

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

  1. Клацніть на "Сайти"

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

  1. Клацніть на "Автоматично виявляти мережу інтрамережі"

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

  1. Клацніть OK. Спробуйте свій локальний машинний сайт у Microsoft Edge, і він тепер повинен працювати.

2
My Edge знову почав виставляти цю проблему, і я сподівався, що це рішення буде виправленням, але, на жаль, це не допомогло мені.
Еван де ла Круз,

3
Мені теж не вдалося (я працюю бродягою у приватній мережі).
dtbarne 02.03.16

1
Параметр "Сайти" для мене відключений у Windows 10. Тому я не зміг це виправити.
LeonanCarvalho

4

Може не стосуватися вашої ситуації, але тим не менше. Моє налаштування було таким. Сторінка з адресою публічного простору (Інтернет) намагалася завантажити сторінку з приватною адресою простору (інтрамережа) у внутрішньому кадрі, і Edge відмовився завантажувати сторінку інтрамережі з тим самим повідомленням "Хм, нам не вдається досягти цієї сторінки", та з "Помилкою SEC7117" у консолі налагодження. Виявляється, Edge не любить змішування зон Інтернету / Інтранета (див. Розуміння розширеного захищеного режиму з причин, чому). Edge запускає вкладки в окремих AppContainers, і обмеження мережі AppContainer чутливі до конфігурації вашої мережі.

Моє рішення полягало в тому, щоб вивести сервер, на якому розміщувалася дана сторінка інтрамережі, з доменної мережі, призначивши йому другий приватний простір IP, і створити другий запис DNS для цього IP. У результаті сервер має 2 IP-адреси: одну в доменній мережі та альтернативну та 2 різні записи DNS. Потім Edge вказують на альтернативну URL-адресу, і вона починає завантажувати сторінку інтрамережі просто чудово. Здається, що поки IP-маски ПК та відповідна URL-адреса сторінки не збігаються, Edge завантажує сторінку.

У повідомленні в блозі, про яке я згадав, є інформація про заблокований цикл для локального хосту та відсутність можливостей privateNetworkClientServer в IE. Наскільки я можу сказати, вся ця інформація стосується Edge.


2
Безумовно, це не стосується моєї ситуації. Моя сторінка інтрамережі обслуговується з мого локального комп’ютера (іншими словами, клієнт і сервер - це одна машина). Немає вставки. Немає змішування зон. У мене є локальна сторінка із таким загальнодоступним html-документом: <html><body>hello</body></html> Ім'я мого комп'ютера не містить доменного імені (його не кваліфікують). Крім того, я можу потрапити на кілька локальних сайтів, використовуючи файл хосту. Тільки не цей. Отже, d.test1.com і d.test2.com працюють, але цей, t.test3.com, не працює. Це чудово працює в інших браузерах.
Еван де ла Круз,

Посилання на допис у блозі недійсне. Здається, це вказувало на цю публікацію .
Аддісон Шухардт

3

Коли це трапляється зі мною, я можу знайти запис домену в розділі реєстру нижче, який відповідає домену. Коли я видаляю це все працює, на деякий час ... Я не знаю чому, але 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


Це теж була моя проблема. Хтось має ідеї чому?
Neromancer

Не знаю, чому, але я використав PowerShell для видалення та перевстановлення Edge, і проблема більше не виникає. Швидкий Bingle про те, як це зробити, знайшов цей сайт: cnet.com/how-to/how-to-reinstall-default-apps-in-windows-10 . Ви можете спробувати це ...
Брайан

1
Не вдається знайти TabProcConfigза цим шляхом (для поточного користувача вказаний користувач не існує).
Qtax

Видалення мого сайту з TabProcConfig спрацювало для мене. Але мені довелося також видалити його з Довірених сайтів (там, де я це додав раніше, тому що так говорила інша підказка)
user2543253

3

Зауваживши з вашого редагування, що ви зараз отримуєте доступ до сайту за адресою 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 р. Я також опублікував це рішення більш докладно на інше запитання щодо stackoverflow . Також див. Квиток Virtualbox 15565 .


Я більше не маю проблеми, тому не можу підтвердити виправлення. Але це звучить багатообіцяюче.
Еван де ла Круз,

Переглядаючи свою редакцію, схоже, у мене була проблема як із зворотним зв'язком, так і з локальною ip-адресою. Ця відповідь все ще застосовується?
Еван де ла Круз,

2

Жодне з інших рішень не спрацювало для мене. Виявляється, моя проблема стосується 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 -може? форум = win10itprogeneral

На даний момент Microsoft Edge, здається, погано працює з VPN. А механізм підключення до Інтернету через Microsoft Edge дещо відрізняється від Internet Explorer 11 та інших браузерів для настільних комп'ютерів, чого я не можу чітко пояснити, оскільки я про нього мало що знаю.

Тож, виходячи з поточної ситуації, скористайтеся замість цього Internet Explorer 11.


2

У моєму випадку зміна типу мережі з приватної на загальнодоступну зробила трюк. Це також відтворюється, і зміна типу мережі надійних змін стану з "робочого" на отримання:Http failure response for (unknown url): 0 Unknown Error


Чи можете ви надати кроки для зміни типу мережі в Windows 10 для дому (дротовий Ethernet)? Здається, я не можу знайти перемикачі, яких я очікую. Найближче, що я можу знайти, - це параметри спільного користування мережею з різними варіантами для приватного чи публічного , що мені здається не зовсім правильним.
Еван де ла Круз,

1. Клацніть піктограму WiFi у системному треї; 2. клацніть властивості у вашій мережі; 3. змінити профіль мережі з Приватного на Загальнодоступний. tinkertry.com/…
Mark Leong

0

Для мене я перейшов до «Властивості браузера» (панель управління), потім «Безпека», потім вибрав локальну інтрамережу, а потім поставив галочку в «Автоматично визначати мережу інтрамережі». Це затінило вкладені опції нижче, і Edge негайно почав використовувати мій файл hosts.


2
Я спробував це, але, на жаль, не мав успіху.
Деніел Джексон,

@DanielJackson Я не можу зробити це на своїй робочій машині через обмеження безпеки ...
Радмація
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.