Konsep Teknis Cloudflare Tunnel

Dalam dunia modern networking dan deployment aplikasi, kebutuhan untuk mempublikasikan layanan lokal ke internet dengan cara yang aman, fleksibel, dan minim konfigurasi jaringan semakin besar. Banyak developer, admin IT, maupun praktisi jaringan menghadapi kendala klasik seperti:

  • Tidak memiliki IP publik
  • Terjebak NAT atau CGNAT dari ISP
  • Tidak ingin membuka port (port forwarding)
  • Ingin keamanan berbasis identitas, bukan sekadar IP

Cloudflare Tunnel hadir sebagai solusi modern untuk permasalahan tersebut. Artikel ini akan membahas Cloudflare Tunnel secara menyeluruh, mulai dari konsep dasar, arsitektur teknis (termasuk hubungannya dengan Windows Service), hingga berbagai contoh pemanfaatannya dalam dunia nyata.

Untuk memahami artikel ini, anda dapat membaca dulu artikel tentang CGNAT DISINI

Konsep Cloudflare Tunnel

Apa Itu Cloudflare Tunnel?

Cloudflare Tunnel (sebelumnya dikenal sebagai Argo Tunnel) adalah mekanisme secure outbound connection yang memungkinkan sebuah server lokal (on‑premise, laptop, PC kantor, VM, bahkan Raspberry Pi) terhubung ke jaringan Cloudflare tanpa membuka port apa pun ke internet.

Berbeda dengan web hosting konvensional atau VPN, Cloudflare Tunnel bekerja dengan cara:

  • Server lokal menginisiasi koneksi keluar ke Cloudflare
  • Cloudflare menjadi perantara (reverse proxy)
  • User di internet mengakses layanan melalui domain Cloudflare

Dengan kata lain, tidak ada koneksi inbound langsung ke server lokal.


Komponen Utama Cloudflare Tunnel

Untuk memahami Cloudflare Tunnel secara teknis, kita perlu mengenal tiga komponen utama berikut.

1. Domain & DNS Cloudflare

Domain (misalnya example.com) dikelola di Cloudflare DNS. Untuk menghubungkan domain ke tunnel, digunakan record CNAME yang mengarah ke domain khusus Cloudflare:

<uuid>.cfargotunnel.com

UUID tersebut adalah identitas unik tunnel.


2. Cloudflare Tunnel (UUID)

Setiap tunnel memiliki UUID (Universally Unique Identifier), misalnya:

95f7e40c-b189-4e4c-afe6-0e7d09daab03

UUID ini berfungsi sebagai:

  • Identitas tunnel
  • Penghubung antara DNS dan koneksi lokal
  • Penanda tunnel mana yang aktif dan menerima traffic

UUID bukan bagian dari web server, bukan milik Apache, dan bukan milik aplikasi.


3. cloudflared (Service Lokal)

cloudflared adalah aplikasi kecil (daemon/agent) yang dijalankan di mesin lokal. Inilah jantung Cloudflare Tunnel.

Di Windows, cloudflared dapat berjalan sebagai:

  • Aplikasi manual (CLI)
  • Windows Service (background service) ← ini yang paling umum dan stabil

Saat berjalan, cloudflared akan:

  1. Membaca credential tunnel (file JSON)
  2. Membuka koneksi TLS outbound ke Cloudflare
  3. Mendaftarkan diri menggunakan UUID tunnel
  4. Menunggu request dari Cloudflare
  5. Meneruskan request ke service lokal (Apache, SSH, RDP, dll)

Hubungan Cloudflare Tunnel dengan Windows Service

Ini bagian penting yang sering membingungkan.

Di Mana Sebenarnya Tunnel Berjalan?

Cloudflare Tunnel tidak berjalan di XAMPP, tidak di Apache, dan tidak di PHP.

Tunnel berjalan di  Windows Service: cloudflared

Biasanya setelah menjalankan:

cloudflared service install

maka Windows akan memiliki service bernama cloudflared yang:

  • Otomatis start saat Windows boot
  • Berjalan di background
  • Tidak bergantung pada user login

Lokasi File Penting di Windows

Biasanya berada di:

C:\Users\<username>\.cloudflared\

Isi penting:

  • <UUID>.json → credential tunnel
  • cert.pem → sertifikat autentikasi
  • config.yml → mapping domain ke service lokal

Apache/XAMPP tidak tahu apa-apa tentang UUID ini. Ia hanya menerima request di localhost.


Alur Teknis Request (End-to-End)

Mari kita lihat alur lengkapnya.

User Browser
DNS Cloudflare
budisetiaji.my.id (CNAME)
<UUID>.cfargotunnel.com
Cloudflare Edge
Tunnel aktif
cloudflared (Windows Service)
localhost:80
Apache (XAMPP)
Aplikasi PHP

Analogi Sederhana

Bayangkan:

  • UUID = nomor hotline unik
  • cloudflared service = operator call center
  • Apache/XAMPP = ruangan tujuan

Penelpon menelepon nomor hotline → operator menerima → diarahkan ke ruangan.
Ruangan tidak perlu tahu nomor hotline itu apa.


Contoh Pemanfaatan Cloudflare Tunnel

Salah satu keunggulan Cloudflare Tunnel adalah fleksibilitasnya. Ia tidak hanya untuk web server.

1. Web Server Lokal (PHP, Node.js, Python)

Contoh:

ingress:
- hostname: absen.example.com
service: http://localhost:80

Pemanfaatan:

  • Website Lokal
  • Admin panel
  • CMS lokal

Keunggulan:

  • Tanpa IP publik
  • Tanpa port forwarding
  • HTTPS otomatis

2. SSH Aman Tanpa Port 22

- hostname: ssh.example.com
service: ssh://localhost:22

Akses:

ssh user@ssh.example.com

Keunggulan:

  • Tidak bisa discan
  • Bisa dikunci login Google

3. Remote Desktop (RDP)

- hostname: rdp.example.com
service: rdp://localhost:3389

Cocok untuk:

Akses PC kantor, Remote admin dan sebagainya

4. Database Admin (MySQL / PostgreSQL)

- hostname: db.example.com
service: tcp://localhost:3306

Digunakan via cloudflared access tcp.

⚠️ Disarankan hanya untuk admin, bukan publik.


5. API & Microservices

- hostname: api.example.com
service: http://localhost:8080

Cocok untuk:

  • Backend mobile app
  • IoT gateway
  • Internal service

Cloudflare Tunnel vs VPN (Singkat)

AspekCloudflare TunnelVPN
LayerAplikasi (L7)Jaringan (L3/L4)
AksesPer aplikasiFull network
Port forwardingTidakKadang
Zero TrustNativeTambahan
Risiko lateral movementRendahTinggi

Kelebihan dan Batasan

Kelebihan

Tidak butuh IP publik
Aman secara default
Zero Trust & Identity-based
Cocok untuk CGNAT (umum di Indonesia)

Batasan

  • Bukan pengganti VPN full network
  • Tidak cocok untuk traffic latency-sensitive berat
  • Bergantung koneksi Cloudflare


Cloudflare Tunnel adalah solusi modern untuk menghubungkan layanan lokal ke internet tanpa kompromi keamanan. Dengan arsitektur berbasis outbound connection, UUID tunnel, dan cloudflared sebagai Windows Service, ia memisahkan secara jelas antara:

  • Lapisan akses (Cloudflare)
  • Lapisan koneksi (Tunnel)
  • Lapisan aplikasi (XAMPP, Apache, PHP)

Bagi developer dan admin IT, Cloudflare Tunnel bukan sekadar alat publikasi web, tetapi secure gateway universal untuk berbagai kebutuhan.

Memahami Propagasi DNS

Keluarga Ubuntu

Perbedaan Sistem File Linux dan Windows