Argo Tunnel: Alternatif Ngrok Untuk Akses Localhost Dari Internet

· 4 menit untuk membaca
Argo Tunnel: Alternatif Ngrok Untuk Akses Localhost Dari Internet

Pada saat kita mengembangkan aplikasi, kita akan melalui tahap testing sebelum kita deploy ke server. Hal ini diperlukan untuk mengetahui apakah aplikasi kita berjalan dengan baik atau tidak.

Apa Itu Ngrok?

Ngrok adalah sebuah aplikasi tunneling yang memungkinkan kita untuk meng-ekspos jaringan private(localhost) ke jaringan publik. Dengan Ngrok kita bisa melakukan testing aplikasi kita sebelum men-deploy ke server yang sesungguhnya.

Tetapi untuk versi gratis, Ngrok memiliki limit seperti:

  1. HTTP/TCP tunnels on random URLs/ports
  2. 1 online ngrok process
  3. 4 tunnels / ngrok process
  4. 40 connections / minute

Cloudflare Argo Tunnel Sebagai Alternatif Ngrok

Dengan Cloudflare Argo Tunnel, kita bisa meng-ekspose jarigan local kita layaknya menggunakan layanan Ngrok. Berbeda dengan Ngrok, Argo Tunnel 100% gratis dan tanpa limit seperti Ngrok versi gratis. Kelebihan Argo Tunnel dibandingkan dengan Ngrok adalah:

  1. Gratis
  2. Tidak ada batasan connections, tunnels, dan online process
  3. Bisa custom domain
  4. Native CDN dari Cloudflare

kekurangan dari Cloudflare Argo Tunnel yaitu:

  1. Tidak ada jaminan SLA atau Uptime
  2. Tidak direkomendasikan untuk production
Cara kerja Cloudflare argo tunnel

Baca juga: Cara Menghubungkan Domain Dengan CloudFlare

Cara Menggunakan Cloudflare Argo Tunnel

Setelah kita mengetahui apa itu Argo Tunnel, maka sekarang kita akan belajar Cara Menggunakan Cloudflare Argo Tunnel untuk meng-onlinekan localhost, Berikut adalah langkah-langkahnya:

  1. Membuat Akun di Cloudflare
  2. Install Cloudflared
  3. Login Cloudflared dengan Akun Cloudflare
  4. Membuat Tunnel Baru
  5. Membuat File Konfigurasi Tunnel
  6. Jalankan dan Check Tunnel

1. Membuat Akun di Cloudflare

Yang pertama kita buat dulu akun cloudflare melalaui halaman Sign Up secara gratis alias tanpa memasukkan metode pembayaran.

2. Install Cloudflared

Selanjutnya kita install Cloudflared. Argo Tunnel sekarang tersedia untuk semua pengguna tanpa akun Cloudflare. Kita hanya memerlukan daemon Cloudflare, yaitu cloudflared, yang berjalan di Komputer atau Server kita. Untuk argo tunnel tanpa akun cloudflare, kita tidak bisa melakukan custom domain dan kita akan diberikan subdomain random.

Install cloudflared dengan cara download dulu daemonnya disini lalu run. Tersedia untuk sistem operasi Windows, Linux dan Mac OS. Khusus untuk OS windows, download yang .msi karena yang .exe hanya muncul blank di terminal.

3. Login Cloudflared dengan Akun Cloudflare

Sebenarnya kita bisa langsung menjalankan argo tunnel tanpa harus login atau membuat akun cloudflare terlebih dahulu di terminal atau CMD(windows) dengan cara:

$ cloudflared tunnel --url localhost:7000

Tetapi disini saya ingin menggunakan domain saya sendiri, langkah pertama yaitu kita login ke akun cloudflare dengan cara:

$ cloudflared tunnel login

Dengan Menjalankan perintah ini kita akan otomatis:

  • Membuka window browser lalu masuk ke akun cloudflare kita. Setelah masuk ke akun cloudflare, pilih hostname yang ingi digunakan.
  • Meng-Generate account certificate, file cert.pem, yang berada di directory default cloudflared.

4. Membuat Tunnel Baru

Selanjutnya kita membuat Tunnel baru dengan cara:

$ cloudflared tunnel create <Nama Tunnel>

Command di atas menampilkan UUID dan Path Kredensial dari tunnel yang sudah kita buat.

membuat cloudflare tunnel

Pastikan lagi bahwa tunnel yang kita buat berhasil dengan menjalankan command berikut:

$ cloudflared tunnel list

5. Membuat File Konfigurasi Tunnel

OS PATH TO DEFAULT DIRECTORY
Windows %USERPROFILE%\.cloudflared
MacOS and Unix-like systems ~/.cloudflared/etc/cloudflared, & /usr/local/etc/cloudflared

Lalu buatlah file dengan nama config.yml lalu isi dengan:

url: http://localhost:8000
tunnel: <Tunnel-UUID>
credentials-file: C:\Users\Yukebrillianth\.cloudflared\<Tunnel-UUID>.json

Lalu jalankan command di bawah untuk routing domain.

$ cloudflared tunnel route dns <UUID or NAME> <hostname>

#contoh

$ cloudflared tunnel route dns Testing node-test.example.com

Lalu jalankan dengan command:

$ cloudflared tunnel run <Tunnel-UUID>

Config di atas hanya bisa untuk 1 host, nah menariknya di cloudflare argo tunnel ini kita bisa menjalankan beberapa tunnel sekaligus dengan config ingress rule seperti di bawah ini:

tunnel: <Tunnel-UUID>
credentials-file: C:\Users\Yukebrillianth\.cloudflared\<Tunnel-UUID>.json

ingress:
  - hostname: example.com
    service: https://localhost:8000
  - hostname: static.example.com
    path: /*.(jpg|png|css|js)
    service: https://localhost:8001
  - hostname: ssh.example.com
    service: ssh://localhost:22
  - hostname: db.example.com
    service: tcp://localhost:3306
  # An example of a catch-all rule:
  - service: http_status:404

Lalu validasi file konfigurasi di atas dengan cara menjalankan commad berikut:

$ cloudflared tunnel ingress validate

6. Routing Traffic

Jangan lupa untuk config route domain yang ada di file konfigurasi kita ke tunnel kita:

$ cloudflared tunnel route dns <UUID or NAME> example.com
$ cloudflared tunnel route dns <UUID or NAME> static.example.com
$ cloudflared tunnel route dns <UUID or NAME> ssh.example.com
$ cloudflared tunnel route dns <UUID or NAME> db.example.com

7. Jalankan dan Check Tunnel

Selanjutnya setelah kita membuat file konfigurasi jangan lupa jalankan tunnel dengan command:

$ cloudflared tunnel run <Tunnel-UUID>

lalu akses tunnel tersebut, misal example.com jika berhasil maka akan muncul seperti ini:

menjalankan cloudflare tunnel

Jika muncul seperti di bawah ini, berarti server lokal kita sedang mati atau tidak dapat diakses.

menjalankan cloudflare tunnel

Konfigurasi tunnel kita telah selesai! Jika ingin mendapatkan informasi tentang tunnel yang baru saja Anda buat, kita dapat menjalankan command berikut:

$ cloudflared tunnel info

Kesimpulan

Kesimpulannya cloudflare argo tunnel ini sangat recomended untuk kita para developer yang ingin melakukan test untuk service web kita atau mungkin operator sekolah yang ingin mengadakan ujian atau pemilihan ketua osis secara online melalui server lokal. Kita bisa menjalankan beberapa tunnel sekaligus dengan satu file konfigurasi dengan menggunakan ingress rule.

Related Articles

Cara Mengamankan Login WordPress Dengan 2FA
· 2 menit untuk membaca
Framework: Pengertian, Contoh, dan Fungsinya
· 2 menit untuk membaca
Cara Daftar Paket Gojek Telkomsel, 75 Ribu Dapet 15GB!
· 3 menit untuk membaca
Ini 6 Perusahaan Terkenal yang Menggunakan Python
· 3 menit untuk membaca