5 puntos por litdemon 11 일 전 | 4 comentarios | Compartir por WhatsApp

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

 
hshim 10 일 전

El comando de instalación y el enlace de GitHub en la parte superior de la página principal muestran un error 404.

 
litdemon 10 일 전

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.

 
click 8 일 전

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.

 
sacru2red 10 일 전

Se ve bien. Salir del infierno de la configuración.