5 poin oleh litdemon 11 hari lalu | 4 komentar | Bagikan ke WhatsApp

Tautan layanan: https://natnest.site
Sumber klien: https://github.com/litdemon/natnest-client


Halo. Saya membuat NatNest, layanan yang mengekspos server lokal ke luar berbasis SSH reverse tunnel.

run local server 8080

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


Alasan membuatnya

Saya punya satu Mac mini di rumah dan menjalankan Ollama di sana.
Saya ingin memakainya dari luar rumah juga, tetapi setiap kali pengaturan port forwarding selalu menjadi hambatan.
Saya harus masuk ke halaman admin router, membuka port, lalu menggunakannya.

Lalu saat menggunakan Dialogflow dari Google, saya perlu mendaftarkan Webhook (fulfillment).
Itu mewajibkan https, jadi saya harus menyiapkan domain dan sertifikat, menjalankan Nginx, lalu membuat reverse proxy sampai semuanya terhubung.

Developer lain juga harus melakukan pekerjaan yang persis sama seperti saya dalam situasi serupa. Saya harus menjelaskannya kepada mereka, lalu saya berpikir

"Kenapa tidak bikin sendiri saja?" dan dari situlah NatNest dimulai.

Saya bukan hanya membuat klien. NatNest adalah gabungan dari banyak komponen seperti Nginx + Lua, Redis, DB, API server, Tunnel-server (SSH server), dan lainnya.

Saat membuatnya, saya baru sadar bahwa ternyata sudah ada layanan yang sama seperti ini di ngrok dan Cloudflare Tunnel T_T.


Cara kerjanya

Saat klien (CLI) membuat SSH reverse tunnel ke server, server akan mendaftarkan pemetaan subdomain → port internal ke Redis. Setelah itu, ketika ada request dari luar ke https://yourname.natnest.site, OpenResty (Nginx + Lua) akan memeriksa Redis dan mem-proxy request tersebut ke port SSH tunnel yang sesuai.

Request eksternal → [Nginx + Lua] → cek Redis → port SSH tunnel → server lokal

Klien menjaga koneksi SSH tetap hidup lewat proses watchdog di background, jadi meskipun terminal ditutup atau jaringan sempat terputus, koneksi akan otomatis tersambung kembali dalam 5 detik.


Apa bedanya dengan ngrok / Cloudflare Tunnel

NatNest : URL permanen, self-hosting, penampil log webhook
Ngrok Free : URL permanen(❌), tidak bisa self-hosting, penampil log webhook (Pro ke atas)
Cloudflare Tunnel : URL permanen(❌), Pro ke atas, tidak ada(❌)

Cocok untuk orang seperti saya yang menginginkan "URL permanen gratis, dengan data berada di atas server saya sendiri".

Keunggulan terbesarnya adalah
memiliki solusi untuk menyediakan layanan seperti Ngrok,
dan kelincahan untuk langsung menerapkan ide layanan yang bagus dari komentar-komentar di sini.

Ini benar-benar langkah pertama untuk memasukkan fitur yang benar-benar diinginkan developer.


Status saat ini dan keterbatasan yang jujur

Berdasarkan v0.5.1, fitur-fitur berikut sudah berfungsi:

  • Koneksi akun Google (OAuth Device Flow) + pembuatan SSH key otomatis
  • Subdomain permanen + pembaruan otomatis wildcard Let's Encrypt HTTPS
  • Dashboard web (daftar tunnel aktif, log webhook real-time)
  • Binary klien untuk Linux(amd64·arm64), macOS, Windows

Masih ada beberapa kekurangan:

  • Otomatisasi CI/CD untuk build Windows belum selesai (masih build manual)
  • Server masih berupa satu server yang dijalankan dari rumah sehingga ada latensi
  • Layanan masih dioperasikan sendiri sehingga sulit menjamin stabilitas tingkat layanan (SLA)

Jika ingin mencobanya

Linux / macOS

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

natnest setup # Hubungkan akun Google
natnest 8080 # Publikasikan port lokal 8080 ke luar


Ini pertama kalinya saya membukanya untuk akses eksternal, jadi kalau Anda punya masukan tentang pengalaman penggunaan atau pendapat seperti "akan bagus kalau ada fitur seperti ini", saya akan sangat berterima kasih jika Anda meninggalkannya di komentar.

4 komentar

 
hshim 10 hari lalu

Perintah instalasi dan tautan github di bagian atas beranda menampilkan error 404.

 
litdemon 10 hari lalu

Terima kasih atas komentarnya. Perbaikannya sudah saya terapkan.
Masalah yang lebih besar tampaknya adalah perubahan desain yang sekilas pun terlihat jelas dibuat oleh AI

 
click 8 hari lalu

https://github.com/anderspitman/awesome-tunneling
Awesome Tunneling - kumpulan alternatif ngrok
Karena layanan jenis tunnel cukup banyak peminatnya, ternyata ada banyak layanan sejenis. Sepertinya ada baiknya juga melihat referensi dari layanan-layanan lain.

 
sacru2red 10 hari lalu

Kelihatannya bagus. Saatnya keluar dari neraka konfigurasi