Merakit Tunnel membuat aplikasi di jaringan lokal dapat dibuka dari internet lewat alamat publik. Perangkat Anda tidak memerlukan IP publik dan Anda tidak perlu membuka port di router. Semua pengaturan dilakukan dari menu Tunnel di portal console Merakit.
Cara Kerja
- Agent Merakit dipasang di perangkat yang dapat membuka aplikasi Anda, misalnya server kantor, laptop Linux, atau Raspberry Pi.
- Agent membuat koneksi keluar ke gateway Merakit melalui terowongan WireGuard yang terenkripsi.
- Pengunjung membuka alamat publik. Gateway memeriksa akses, lalu meneruskan permintaan lewat terowongan ke perangkat, dan perangkat meneruskannya ke aplikasi tujuan.
Kunci privat terowongan dibuat di perangkat dan tidak pernah dikirim keluar.
Kebutuhan Perangkat
| Kebutuhan | Keterangan |
|---|---|
| Sistem operasi | Linux dengan systemd: Ubuntu, Debian, Raspberry Pi OS, atau host Proxmox |
| Arsitektur | amd64 atau arm64 |
| Jaringan | Akses internet keluar. Koneksi UDP keluar dipakai untuk terowongan. |
| Aplikasi tujuan | Dapat dibuka dari perangkat, di perangkat itu sendiri atau di jaringan yang sama |
Langkah Awal
- Masuk ke console Merakit dan buka menu Tunnel.
- Pilih Tambah perangkat, beri nama perangkat (misalnya
server-kantor), lalu pilih Buat perintah pemasangan. - Jalankan perintah yang muncul di terminal perangkat:
curl -fsSL https://console.merakit.co.id/install.sh | sudo MERAKIT_TOKEN=<token-dari-console> sh
- Tunggu sampai status perangkat berubah menjadi Tersambung.
- Pilih Tambah alamat, isi alamat dan tujuan, lalu simpan.
Token pemasangan bersifat rahasia. Jangan membagikannya di tempat umum.
Menulis Tujuan
Tujuan ditulis sebagai alamat:port yang dilihat dari perangkat ber-agent.
| Aplikasi | Tujuan |
|---|---|
| Aplikasi di perangkat itu sendiri | 127.0.0.1:3000 |
| Aplikasi di server lain dalam jaringan yang sama | 192.168.1.20:80 |
| Aplikasi yang sudah memakai HTTPS | https://192.168.1.10:8006 |
Untuk tujuan HTTPS dengan sertifikat self-signed, seperti panel Proxmox, biarkan opsi Tujuan wajib punya sertifikat resmi tidak dicentang. Centang opsi tersebut bila tujuan memakai sertifikat resmi dan Anda ingin gateway memeriksanya.
Alamat Publik
Ada dua pilihan alamat:
- Subdomain Merakit: tulis nama alamat, misalnya
demo-klien, sehingga alamatnya menjadidemo-klien.tunnel.merakit.my.id. Alamat langsung aktif. - Domain sendiri: tulis domain lengkap, misalnya
absensi.kantorku.id. Alamat aktif setelah domain diverifikasi.
Verifikasi Domain Sendiri
Tambahkan dua record berikut di pengelola DNS domain Anda. Nilai token dan IP gateway ditampilkan di console pada baris alamat yang menunggu verifikasi.
TXT _merakit.absensi.kantorku.id → merakit-verify=<token-dari-console>
A absensi.kantorku.id → <IP gateway dari console>
Setelah record tersimpan, pilih Verifikasi. Sertifikat HTTPS terbit otomatis dalam beberapa detik setelah domain terverifikasi.
Proteksi Akses
Setiap alamat dapat diberi proteksi tambahan di bagian Proteksi akses:
- Nama pengguna dan kata sandi: pengunjung harus memasukkan kredensial sebelum permintaan diteruskan ke perangkat.
- Hanya dari IP: isi daftar IP atau rentang yang diizinkan, dipisahkan koma, misalnya
203.0.113.7, 10.0.0.0/8. Kosongkan untuk mengizinkan semua IP.
Permintaan yang ditolak berhenti di gateway dan tidak pernah sampai ke perangkat Anda.
Contoh Konfigurasi
| Kebutuhan | Tujuan | Alamat | Proteksi yang disarankan |
|---|---|---|---|
| Panel Proxmox kantor | https://192.168.1.10:8006 | pve.kantorku.id | Hanya dari IP kantor |
| Aplikasi absensi di server LAN | 192.168.1.20:80 | absensi.kantorku.id | Login bawaan aplikasi |
| Demo prototipe dari laptop | 127.0.0.1:3000 | demo-klien.tunnel.merakit.my.id | Kata sandi |
| Dasbor sensor di Raspberry Pi | 127.0.0.1:1880 | sensor-gudang.tunnel.merakit.my.id | Kata sandi |
| Uji webhook pembayaran | 127.0.0.1:8000 | webhook-dev.tunnel.merakit.my.id | Tanpa proteksi tambahan, hapus setelah pengujian |
Pemakaian dan Tagihan
- Tarif Rp1.000 per GB dengan kuota gratis 5 GB per bulan per organisasi. Bulan dihitung dalam WIB.
- Yang dihitung adalah data HTTP yang lewat gateway, masuk dan keluar. Biaya protokol terowongan tidak ditagih. 1 GB = 1.000.000.000 byte.
- Tagihan dipotong per jam dari saldo.
- Batas bulanan dapat dipasang agar pemakaian tidak melebihi anggaran.
- Grafik aliran data, waktu respons, dan status respons tersedia di menu Tunnel. Rincian per jam dapat diunduh dalam format CSV.
Status Alamat
| Status | Arti | Yang perlu dilakukan |
|---|---|---|
| Aktif | Alamat dapat dibuka pengunjung | Tidak ada |
| Menunggu perangkat | Agent belum terpasang atau belum tersambung | Jalankan perintah pemasangan di perangkat |
| Verifikasi domain | Record TXT belum ditemukan | Periksa record DNS, lalu pilih Verifikasi |
| Dijeda · saldo habis | Saldo tidak cukup | Isi saldo; alamat aktif kembali otomatis |
| Dijeda · batas bulanan | Pemakaian mencapai batas bulanan | Naikkan batas atau tunggu bulan berikutnya |
| Dijeda | Alamat dijeda secara manual | Pilih Lanjutkan |
Pemecahan Masalah
- Perangkat berstatus terputus: biasanya koneksi UDP keluar diblok oleh firewall atau jaringan. Pastikan perangkat dapat mengirim UDP keluar, lalu periksa log dengan
journalctl -u merakit-agent -f. - Pengunjung melihat galat 502: aplikasi tujuan belum berjalan atau tujuan salah. Coba buka tujuan dari perangkat, misalnya dengan
curl http://127.0.0.1:3000. - Tujuan HTTPS gagal dibuka: bila tujuan memakai sertifikat self-signed, pastikan opsi sertifikat resmi tidak dicentang.