Exponer localhost a Internet a través de un túnel (usando ngrok): error HTTP 400: solicitud incorrecta; Nombre de host no válido

Resuelto Chris asked hace 9 años • 12 respuestas

De versiones anteriores de la pregunta, aparece esto: Navegar por el sitio web con dirección IP en lugar de localhost , que describe prácticamente lo que he hecho hasta ahora... Tengo la IP local funcionando. Luego encontré ngrok y aparentemente no necesito conectarme a través de IP.


Lo que intento hacer es exponer mi sitio web que se ejecuta en localhost a Internet. Encontré una herramienta que hará esto: ngrok.

Al ejecutar el sitio web en Visual Studio, el sitio web se inicia en localhost/port#. Ejecuto el comando "ngrok http port#" en la línea de comando. Todo parece empezar bien. Genero un par de URL y la URL de inspección de ngrok (localhost:4040) funciona.

El único problema es que cuando voy a las URL generadas, aparece un error HTTP 400: solicitud incorrecta de nombre de host no válido. Este es un error diferente que cuando ejecuto "ngrok http badport#", que es un error de host no encontrado... así que creo que algo bueno está sucediendo. Simplemente no puedo decir qué...

¿Me falta algún paso para exponer mi sitio a Internet a través del servicio de túnel? Si lo hay, no puedo encontrarlo en la documentación de ngrok.

Chris avatar May 30 '15 00:05 Chris
Aceptado

Solucioné este problema con ngrok. En palabras de inconshrevable, algunas aplicaciones se enojan cuando ven un encabezado de host diferente al esperado.

Ejecutar el siguiente comando debería solucionar el problema:

ngrok http [port] --host-header="localhost:[port]"

Dependiendo de la versión, es posible que también quieras probar:

ngrok http [port] --host-header="localhost:[port]"
Chris avatar Jun 02 '2015 16:06 Chris

El siguiente comando solucionará el problema

ngrok http -host-header=localhost 8080
Sathish avatar Aug 07 '2017 10:08 Sathish

Esto no funcionó para mí. podrías hacer lo siguiente:

Para IIS expreso

En VS 2015: vaya a la .vs\config\applicationhost.configcarpeta de su proyecto

En VS 2013 y versiones anteriores: vaya a %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config

Encuentra el enlace que dice:

<binding protocol="http" bindingInformation="*:5219:localhost" />

Para mí fue un proyecto ejecutándose en el puerto 5219.

cambiarlo a

  <binding protocol="http" bindingInformation="*:5219:" />

IIS Express ahora aceptará todas las conexiones entrantes en ese puerto.

Desventaja: necesita ejecutar IIS Express como administrador.

o podrías reescribir el encabezado del host en Ngrok:

ngrok.exe http -host-header=rewrite localhost:5219
Stefanvds avatar Nov 24 '2015 03:11 Stefanvds