Saya membuat layanan tunnel SSH yang memberi server lokal URL HTTPS permanen tanpa perlu mengatur router
(natnest.site)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
Perintah instalasi dan tautan github di bagian atas beranda menampilkan error 404.
Terima kasih atas komentarnya. Perbaikannya sudah saya terapkan.
Masalah yang lebih besar tampaknya adalah perubahan desain yang sekilas pun terlihat jelas dibuat oleh AI
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.
Kelihatannya bagus. Saatnya keluar dari neraka konfigurasi