5 pontos por litdemon 11 일 전 | 4 comentários | Compartilhar no WhatsApp

Link do serviço: https://natnest.site
Código-fonte do cliente: https://github.com/litdemon/natnest-client


Olá. Criei o NatNest, um serviço que expõe um servidor local para fora com base em túnel reverso SSH.

run local server 8080

natnest 8080 → https://yourname.natnest.site


O que me levou a criar isso

Tenho um Mac mini em casa e rodo o Ollama nele.
Queria usar também fora de casa, mas configurar port forwarding toda vez era um obstáculo.
Eu entrava na página de administração do roteador, abria a porta e usava assim.

Depois, ao usar o Dialogflow do Google, surgiu a necessidade de registrar um Webhook(fullfilment).
Ele exigia HTTPS, então precisei preparar domínio e certificado, subir o Nginx e ainda criar um reverse proxy para conectar tudo.

Outros desenvolvedores também precisavam fazer exatamente o mesmo trabalho na mesma situação. Eu precisava explicar como fazer, e então

"Por que não criar isso eu mesmo?" Foi assim que o NatNest começou.

Não foi só o cliente que eu criei. O NatNest é um conjunto que inclui Nginx + Lua, Redis, DB, api server, Tunnel-server (ssh server) e vários outros servidores.

Enquanto desenvolvia, descobri que já existiam serviços iguais com ngrok e Cloudflare Tunnel T_T.


Como funciona

Quando o cliente (CLI) conecta um túnel reverso SSH ao servidor, o servidor registra no Redis o mapeamento subdomínio → porta interna. Depois, quando uma requisição chega de fora em https://yourname.natnest.site, o OpenResty(Nginx + Lua) consulta o Redis e faz proxy para a porta daquele túnel SSH.

Requisição externa → [Nginx + Lua] → consulta ao Redis → porta do túnel SSH → servidor local

O cliente mantém a conexão SSH com um processo watchdog em segundo plano, então mesmo se você fechar o terminal ou a rede cair por um instante, ele se reconecta automaticamente em até 5 segundos.


O que muda em relação ao ngrok / Cloudflare Tunnel

NatNest : URL permanente, self-hosting, visualizador de logs de webhook
Ngrok Free : URL permanente(❌), sem self-hosting, visualizador de logs de webhook (Pro ou superior)
Cloudflare Tunnel : URL permanente(❌), Pro ou superior, inexistente(❌)

É uma proposta ideal para quem, como eu, quer "URL permanente de graça, com os dados rodando no meu próprio servidor".

A maior vantagem é
ter uma solução capaz de fazer um serviço como o ngrok
e a agilidade de poder aplicar imediatamente boas ideias vindas dos comentários aqui.

Este é realmente o primeiro passo para incorporar funcionalidades que os desenvolvedores de fato querem.


Estado atual e limitações honestas

Na versão v0.5.1, os recursos abaixo funcionam:

  • Vinculação com conta Google (OAuth Device Flow) + geração automática de chave SSH
  • Subdomínio permanente + renovação automática de HTTPS wildcard do Let's Encrypt
  • Dashboard web (lista de túneis ativos, logs de webhook em tempo real)
  • Binários de cliente para Linux(amd64·arm64), macOS e Windows

Ainda há pontos que faltam:

  • A automação de CI/CD do build para Windows ainda não está concluída (build manual no momento)
  • O servidor é único e roda em casa, então há latência
  • Como opero o serviço sozinho, ainda é difícil garantir estabilidade em nível de serviço (SLA)

Se quiser instalar e testar

Linux / macOS

curl -fsSL https://natnest.site/install.sh | bash

natnest setup # Vincular conta Google
natnest 8080 # Expor a porta local 8080 para o exterior


Como é a primeira vez que estou abrindo isso ao público, se tiver feedback sobre a experiência de uso ou ideias do tipo "seria legal ter este recurso", eu ficaria realmente muito grato se deixasse um comentário.

4 comentários

 
hshim 10 일 전

O comando de instalação e o link do GitHub no topo da página inicial estão dando erro 404.

 
litdemon 10 일 전

Obrigado pelo comentário. Já apliquei a correção.
O problema maior parece ser a mudança no design, que claramente dá a impressão de ter sido feita por IA.

 
click 8 일 전

https://github.com/anderspitman/awesome-tunneling
Awesome Tunneling - coleção de alternativas ao ngrok
Como esse tipo de tunnel tem muita demanda, existem muitos serviços desse tipo. Talvez também valha a pena consultar outros serviços como referência.

 
sacru2red 10 일 전

Parece interessante. Escapando do inferno das configurações