Accede al código desde cualquier parte del mundo: así funciona el nuevo proyecto rustunne

Accede al código desde cualquier parte del mundo: así funciona el nuevo proyecto rustunne

Un desarrollador lanzó una alternativa de código abierto a ngrok.

image

Ha aparecido la herramienta de código abierto rustunnel, que permite publicar servicios locales en Internet a través de túneles seguros. El proyecto está escrito en el lenguaje Rust y, por su funcionamiento, es similar a ngrok.

rustunnel establece una conexión entre la máquina local y un servidor remoto mediante un WebSocket cifrado con TLS. Las solicitudes entrantes primero llegan al servidor y luego se transmiten por ese canal a la red local del usuario. Este enfoque evita configurar reenvío de puertos y cambios en la infraestructura de red.

La herramienta admite dos modos. En el primer caso se utiliza un servidor ya desplegado con varias regiones (Europa, EE. UU. y Asia), donde el cliente selecciona automáticamente el nodo más cercano. En la segunda opción se puede desplegar un servidor propio y gestionar dominios, certificados y acceso de forma independiente.

Con rustunnel se pueden publicar servicios HTTP, por ejemplo aplicaciones web locales, así como conexiones TCP, incluidas bases de datos. Tras iniciarse, el cliente muestra la dirección pública por la que el servicio local queda accesible.

El proyecto incluye un panel de control, una interfaz REST y la recolección de métricas para Prometheus. Dispone de un registro de actividades que guarda las operaciones con los túneles y los tokens. Para el acceso se emplea un sistema de tokens que se crean desde la interfaz o mediante la API.

La parte servidor está pensada para ejecutarse en Linux y puede funcionar como un servicio systemd. Para las conexiones seguras se utilizan certificados TLS, que se pueden obtener a través de Let's Encrypt. La configuración se almacena en un archivo con ajustes de puertos, límites y parámetros de seguridad.

El código fuente del proyecto es abierto y se distribuye bajo la licencia GNU AGPLv3.