dns - puedo - ¿Por qué Microsoft Edge abre algunos sitios web locales, pero no otros, donde el nombre de dominio se enruta a 127.0.0.1 en el archivo hosts?
modificar archivo host windows 10 (10)
Cuando esto me sucede, puedo encontrar una entrada de dominio en la clave de registro a continuación que coincida con el dominio. Cuando lo elimino, las cosas funcionan, por un tiempo ... No sé por qué, pero Edge eventualmente lo volverá a agregar.
Computadora / 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
Como muchos programadores, pruebo sitios localmente.
Utilizo el archivo hosts para asignar nombres de dominio a mi ip local (127.0.0.1).
Utilizo nombres de dominio calificados, generalmente con un subdominio "d" (para "desarrollo").
Por ejemplo:
d.somewebsite.com
d.anotherwebsite.com
and so on...
En Microsoft edge, la mayoría de los sitios web funcionan.
Sin embargo, un par de ellos no.
No hay nada especial o extraño en los nombres de dominio que no funcionen.
Solo un simple
d.someletters.com
.
Funcionan bien en Chrome, IE y Firefox.
En Edge, recibo el mensaje de error: "Hmm, no podemos llegar a esta página".
Al principio pensé que no estaba resolviendo la IP. Sin embargo, me di cuenta cuando hice un error tipográfico en otra url no relacionada, que las solicitudes que no son enrutadas por el archivo de hosts se envían a mi ISP para su resolución. Si mi ISP no puede resolverlo, me devuelven esta página especial de resultados de búsqueda con sugerencias de lo que podría estar tratando de encontrar. Bueno, cuando voy a mi dominio local, no obtengo esta página de mi ISP. Me sale el error mencionado anteriormente directamente desde el borde.
Entonces, me parece que Edge está resolviendo el dominio correctamente, de lo contrario, se habría enviado al DNS de mi ISP.
Entonces, creo que quizás Edge simplemente no puede conectarse a la máquina local. Pero como dije, varios de estos dominios locales están funcionando bien. Además, usar 127.0.0.1 directamente en Edge también funciona. Son solo estos dos nombres de dominio los que me dan un problema. Y solo en Edge (todos los demás navegadores funcionan) ¿Alguna idea?
El servidor web es Apache2 para Windows (xampp) si eso es importante.
Además, si abro la ventana de depuración en Edge y monitorizo la red, no veo que se envíe ninguna solicitud.
EDITAR: ya no estoy usando el archivo hosts. Tengo dnsmasq ejecutándose en uno de mis cuadros de Linux y lo estoy usando para DNS en lugar de hosts. Además, ya no uso el bucle invertido (obviamente, dado que DNS está en otro cuadro ahora), estoy usando una dirección IP privada interna (192.168 ...). Mismo problema.
Edge no admite direcciones IP de VPN, por lo que cualquier solución alternativa debe emplear algún tipo de proxy. Aquí hay algunas soluciones que encontré trabajo:
-
Instalar y ejecutar
fiddler
. Fiddler básicamente interceptará la solicitud del navegador y luego la reenviará al destino. Esta es la solución más fácil. -
Configure un proxy a través de la herramienta integrada de Windows:
netsh
. Los pasos básicos implican asignar su dominio de desarrollo a una dirección IP privada local disponible en el rango127.0.0.0/8
, luego asignar esta IP a la IP del servidor web en la VPN. Vea las instrucciones paso a paso here -
Use la función de reenvío de puertos de ssh para configurar un proxy. Suponiendo que el puerto 80 está disponible en localhost, agregue
127.0.0.1 d.somewebsite.com
a su archivo host, luego ejecute el siguiente comandossh -L localhost:80:localhost:80 user@devwebserver
:ssh -L localhost:80:localhost:80 user@devwebserver
, dondedevwebserver
es el nombre de host de su servidor web de desarrollo (digamos en la VM o instancia vagabunda, o en la VPN). Esta opción supone que tiene acceso ssh al servidor de desarrollo.
En mi caso, cambiar el tipo de red de privado a público hizo el truco.
Esto también es reproducible y cambiar el tipo de red confiable cambia el estado de "funcionando" a obtener:
Http failure response for (unknown url): 0 Unknown Error
Ninguna de las otras soluciones funcionó para mí. Resulta que mi problema se relaciona con VPN. Microsoft Edge todavía no admite direcciones IP VPN, mientras que Internet Explorer 11 sí. Impresionante que esto sigue siendo un problema a partir de mayo de 2016.
Detalles adicionales: 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
Actualmente, Microsoft Edge parece no funcionar bien con VPN. Y el mecanismo para conectarse a Internet desde Microsoft Edge es un poco diferente de Internet Explorer 11 y los otros navegadores de escritorio, lo que no puedo explicar claramente ya que no sé mucho al respecto.
Entonces, según la situación actual, utilice Internet Explorer 11 en su lugar.
Para mí, fui a Opciones de Internet (panel de control), luego a Seguridad, luego seleccioné la intranet local y luego marqué la casilla "Detectar automáticamente la red de intranet". Esto atenuó las opciones anidadas a continuación, y Edge inmediatamente comenzó a usar mi archivo de hosts.
Puede no aplicarse a su situación, pero de todos modos. Mi configuración fue la siguiente. Una página de dirección de espacio público (Internet) intentaba cargar una página con una dirección de espacio privado (intranet) en un iframe y Edge se negaba a cargar la página de intranet con el mismo mensaje "Hmm, no podemos llegar a esta página", y con "Error SEC7117" en la consola de depuración. Resulta que a Edge no le gusta mezclar zonas de internet / intranet (consulte la publicación de blog Comprender el modo protegido mejorado para conocer los motivos). Edge ejecuta pestañas en AppContainers independientes, y las restricciones de red de AppContainer son sensibles a la configuración de su red.
Mi solución fue sacar el servidor que alojaba la página de la intranet en cuestión fuera de la red de dominio asignándole una segunda IP de espacio privado y crear una segunda entrada de DNS a esa IP. El servidor termina teniendo 2 IP: una en la red de dominio y una alternativa y 2 entradas DNS diferentes. Luego, Edge señala la URL alternativa y comienza a cargar la página de intranet perfectamente. Parece que mientras las máscaras de IP de la PC y la URL de la página en cuestión no coincidan, Edge cargará la página.
La publicación de blog que mencioné tiene información sobre Loopback-bloqueado para localhost y falta de capacidad privateNetworkClientServer en IE. Por lo que puedo decir, toda esa información se aplica a Edge.
Su solución "eliminar de sitios confiables" no funcionó para mí porque mis sitios locales no estaban en mis sitios confiables.
Pero me hizo buscar las Opciones de Internet y logré que IIS funcionara para sitios locales para mí en Windows 10. Esto es lo que hice:
- Abra Opciones de Internet y seleccione "Intranet local"
- Haga clic en "Sitios"
- Haga clic en "Detectar automáticamente la red de intranet"
- Haga clic en Aceptar. Pruebe su sitio de máquina local en Microsoft Edge y ahora debería funcionar.
Tomando nota de su edición de que ahora está accediendo al sitio en la dirección 192.168.0.0/16, en lugar de en 127.0.0.1, supongo que tiene un problema con la forma en que el navegador Edge se comporta de manera diferente dependiendo de la interfaz utilizada para acceder el sitio. Otros navegadores que probé no se comportan de esta manera.
En mi entorno, tenía una configuración de red de Virtualbox solo para host y esta tenía un NdisDeviceType de 1. Edge solo me permitía navegar a sitios a través de esta interfaz después de cambiar NdisDeviceType a 0. La clave de registro que necesita es:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/{4d36e972-e325-11ce-bfc1-08002be10318}/XXXX
En lugar de XXXX, necesita la clave correcta para su interfaz, que determiné a partir de "ruta de impresión" y resté 1. Para mí fue "0016".
El valor a cambiar se llama
*NdisDeviceType
.
(Eso es un asterisco literal). Lo cambié de 0 a 1 y tuve que reiniciar para que Windows notara el cambio.
Mi respuesta fue obtenida de una publicación de "Jani L" del 3 de octubre de 2017. También publiqué esta solución con más detalle en otra pregunta de . También vea un boleto de Virtualbox 15565 .
Yo (pensé que) lo resolvió!
Cosas que no funcionaron:
- Realizar cambios en la configuración de compatibilidad de IE o las listas de compatibilidad de Windows
- Usar nombres de dominio completos
- Usar una dirección IP que no sea loopback
- usando http vs https
- eliminar todos los scripts / recursos de JavaScript y sitios cruzados de la página web
- marcando / desmarcando la opción en about: flags para permitir el localback loopback o usar configuraciones de compatibilidad
- eliminar / agregar / editar las entradas en el TabProcConfig del Registro de Windows
- eliminar el historial de navegación, caché, cookies
La solución: en un giro contraintuitivo completo:
¡Elimine los nombres de dominio de su lista de sitios de confianza !
- Abra el cuadro de diálogo Opciones de Internet (solo pregunte a Cortana o use windowskey + s)
- Vaya a la pestaña Seguridad
- Haga clic en la zona Sitios de confianza
- Haz clic en el botón Sitios
- Eliminar los nombres de dominio problemáticos de la lista de sitios de confianza
- Haga clic en Aplicar y luego cierre el cuadro de diálogo
- Abra Edge (o reinícielo si ya se está ejecutando)
- Viola
Debo señalar que, usando el sentido común, pensé que no era solo el hecho de que el sitio estaba simplemente presente en la zona de "Sitios de confianza" que causó el problema. Me imaginé que era un escenario en esa zona. Entonces, antes de eliminar los nombres de dominio de la lista de "sitios", hice que todas las configuraciones coincidieran exactamente con la configuración de mi zona de Internet (Seguridad media alta, habilitar el modo protegido, no requieren verificación del servidor para todos los sitios), y también intenté cualquier otra combinación que pude encontrar. No hubo una combinación de configuraciones de seguridad de zona que funcionó. La única solución era simplemente eliminar completamente los dominios de la lista de Sitios de confianza. Lo curioso es que funciona en IE independientemente, a pesar de que este es el diálogo de configuración de Internet para IE. Esto solo parece afectar a Edge.
EDITAR: Dos semanas después, cambio mi configuración para, en lugar del archivo de hosts, usar dnsmasq en una máquina Linux local y usarlo para DNS. No estoy seguro de si sucedió de inmediato, pero en algún momento Edge dejó de funcionar de nuevo. Ya tenía activada la casilla de verificación "permitir loopback" sobre: flags, por lo que no esperaba que la corrección CheckNetIsolation funcionara. Pero lo hizo. La versión Edge es 20.10240.16384.0. Usé la solución de No puedo abrir localhost en Microsoft Edge (Project Spartan) en la vista previa de Windows 10
EDITAR # 2 Un par de meses después y Edge está teniendo este problema nuevamente. Probé las dos soluciones anteriores (y otras) y ninguna de ellas funciona para mí. Dejo esta respuesta porque supongo que experimenté dos problemas separados.
-
Su red puede bloquear el bucle invertido como medida de seguridad en Windows 10.
-
Abra un símbolo del sistema como administrador y ejecútelo para eximir a Edge de un bucle invertido:
CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"
(
Microsoft.MicrosoftEdge_8wekyb3d8bbwe
es el identificador de la aplicación Edge)
Hay una publicación de blog aquí que brinda más detalles: https://blogs.msdn.microsoft.com/msgulfcommunity/2015/07/01/how-to-debug-localhost-on-microsoft-edge/