Comunicación punto a punto con ngrok
Última actualización
Última actualización
Ngrok es una herramienta que permite exponer un servidor local a Internet de manera segura y sencilla. Básicamente, crea una especie de "túnel" entre tu ordenador (o servidor local) y la red externa, asignándote una URL pública temporal.
Esta aplicación es sobretodo útil en entornos de testeo de aplicaciones o para acceder a servicios locales desde otros dispositivos o desde Internet, sin necesidad de configurar un dominio o modificar el router, algunas utilidades:
Desarrollo y pruebas remotas: Ideal para probar aplicaciones web y APIs con servicios externos o para mostrar avances a clientes sin desplegar la app en un servidor real.
Pruebas de Webhooks: Herramientas como Stripe, GitHub, Slack, entre otros, requieren URLs públicas para enviar notificaciones, y Ngrok facilita recibir esos datos en tu entorno de desarrollo.
Pruebas en diferentes dispositivos: Puedes acceder a tu aplicación desde otros dispositivos (como móviles) usando la URL pública que Ngrok genera.
Puedes redirigir el trafico de cualquier servicio y protocolo que requieras, por ejemplo:
Podrías hacerlo de dos formas:
Mediante el archivo .exe
Empezando de forma más sencilla:
Descarga el archivo .exe a tu carpeta de proyecto (si es node.js o si esta en xampp con localhost)
Ejecutamos ngrok en el mismo terminal de VScode y como aparece en las instrucciones o mediante el propio archivo .exe (.\ngrok.exe
) con el token de autorización que te ha dado el propio ngrok:
Ejecutamos el comando (siendo 80 el puerto http de localhost por defecto, 3000 si es node por ejemplo):
Este creará un dominio de forwarding, accede a él a través de navegador.
Ya podemos entrar a nuestro servidor localhost a través de dominio público.
Descarga e instala chocolatey desde su página oficial mediante el comando que te aparece
Instala ngrok con el comando especificado en la documentación de ngrok (choco install ngrok
)
Revisa la versión con ngrok -v
Añade el token de autenticación tal y como se ha visto en pasos anteriores.
Ahora vuelve a ejecutar el comando ngrok http 80
Si lo que quieres es servir tu aplicación a través de un dominio estático comprado, el comando seria tal que así:
En Linux, ngrok se ejecutará como un servicio de systemd pero podemos instalarlo de varias formas dependiendo de la distro, en distros de Debian:
o
o
A continuación, como siempre, añade el token:
Y ahora para que lo contemple como servicio deberemos crear una unidad service en /etc/systemd/system/ngrok.service
:
Reiniciamos el daemon sin parar servicios:
Reiniciamos el servicio de ngrok:
Podemos revisar ahora si está activo o no:
Activarlo por defecto con el inicio del servidor:
En la web de Ngrok (en endpoints) podemos encontrar ahora la URL efímera que nos ha creado:
Con docker simplemente hay que descargar la imagen de ngrok con el siguiente comando:
Para el dominio público aleatorio de ngrok, ejecutaremos el contenedor redirigiendo el tráfico del servicio que queremos. Por ejemplo, en http por el puerto 80 (http://localhost:8080
). Recuerda añadir el token correspondiente de la web:
Una vez ejecutado, podrás revisar los endpoints en su página correspondiente.
Para ello sigue estos pasos: primero de todo, y elige que entorno de trabajo utilizas (Linux, Windows, Docker...) y sigue las instrucciones de instalación. Dependiendo de la plataforma elegida sigue los pasos:
Mediante chocolatey
Con el uso de chocolatey , este es un packet manager para Windows que se encarga de la instalación y mantenimiento de aplicaciones del paquete de forma automática. Para realizarlo con este gestor :