Creé un servicio de túnel SSH que le da a tu servidor local una URL HTTPS permanente sin configurar el router
(natnest.site)Enlace del servicio: https://natnest.site
Código fuente del cliente: https://github.com/litdemon/natnest-client
Hola. Creé NatNest, un servicio que expone un servidor local al exterior basado en túneles reversos SSH.
run local server 8080
natnest 8080 → https://yourname.natnest.site
Cómo surgió
Tengo una Mac mini en casa y ahí ejecuto Ollama.
Quería usarlo también fuera de casa, pero configurar el port forwarding cada vez era un obstáculo.
Entraba al panel de administración del router, abría puertos y lo usaba así.
Luego, al usar Dialogflow de Google, tuve que registrar un Webhook (fulfilment).
Requería https, y tuve que preparar un dominio y certificados, levantar Nginx y crear un reverse proxy para conectarlo todo.
Otros desarrolladores tenían que hacer exactamente el mismo trabajo que yo en la misma situación. Tenía que explicarlo todo, y entonces pensé:
"¿Y si simplemente lo hago yo mismo?" Así empezó NatNest.
No solo hice el cliente. NatNest es un conjunto formado por varios servidores como Nginx + Lua, Redis, DB, api server y Tunnel-server (ssh server), entre otros.
Mientras lo hacía me di cuenta de que ya existían servicios iguales como ngrok y Cloudflare Tunnel T_T.
¿Cómo funciona?
Cuando el cliente (CLI) conecta un túnel reverso SSH al servidor, el servidor registra en Redis el mapeo subdominio → puerto interno. Después, cuando entra una solicitud externa a https://yourname.natnest.site, OpenResty(Nginx + Lua) consulta Redis y hace proxy hacia el puerto de ese túnel SSH.
Solicitud externa → [Nginx + Lua] → consulta en Redis → puerto del túnel SSH → servidor local
El cliente mantiene la conexión SSH mediante un proceso watchdog en segundo plano, así que aunque cierres la terminal o la red se corte brevemente, se reconecta automáticamente en menos de 5 segundos.
¿Qué diferencia hay con ngrok / Cloudflare Tunnel?
NatNest : URL permanente, self-hosting, visor de logs de webhooks
Ngrok Free : URL permanente (❌), no permite self-hosting, visor de logs de webhooks (solo Pro o superior)
Cloudflare Tunnel : URL permanente (❌), Pro o superior, no tiene (❌)
Está pensado para gente como yo, que quiere "una URL permanente gratis, con los datos sobre mi propio servidor".
La mayor ventaja es
que tengo una solución con la que puedo ofrecer un servicio como ngrok,
y además la agilidad para aplicar de inmediato buenas ideas de servicio que aparezcan en los comentarios.
Es de verdad el primer paso para incorporar las funciones que los desarrolladores quieren.
Estado actual y limitaciones honestas
A partir de la versión v0.5.1, funcionan estas características:
- Vinculación de cuenta de Google (OAuth Device Flow) + generación automática de clave SSH
- Subdominio permanente + renovación automática de HTTPS wildcard de Let's Encrypt
- Dashboard web (lista de túneles activos, logs de webhooks en tiempo real)
- Binarios cliente para Linux(amd64·arm64), macOS y Windows
Aún hay aspectos que faltan:
- La automatización CI/CD del build de Windows está incompleta (actualmente es manual)
- El servidor corre en una sola máquina en mi casa, así que hay latencia
- Opero el servicio yo solo, así que es difícil garantizar estabilidad a nivel de servicio (SLA)
Si quieren probarlo
Linux / macOS
curl -fsSL https://natnest.site/install.sh | bash
natnest setup # Vincular cuenta de Google
natnest 8080 # Exponer el puerto local 8080 al exterior
Es la primera vez que lo publico externamente, así que si tienen comentarios sobre la experiencia de uso o ideas de "estaría bueno tener esta función", les agradecería muchísimo que los dejaran en los comentarios.
4 comentarios
El comando de instalación y el enlace de GitHub en la parte superior de la página principal muestran un error 404.
Gracias por el comentario. Ya apliqué la corrección.
Creo que el problema más grande es el cambio de diseño que, a simple vista, se nota que lo hizo una IA.
https://github.com/anderspitman/awesome-tunneling
Awesome Tunneling - recopilación de alternativas a ngrok
Parece que hay muchos servicios del tipo túnel porque la demanda es alta. También podría ser bueno que revisen como referencia otros servicios.
Se ve bien. Salir del infierno de la configuración.