Cara Self-Host Cloudflared Tunnel di Linux
ยท 3 min read
Pendahuluanโ
Cloudflare Tunnel adalah solusi untuk mengekspos layanan lokal ke internet tanpa:
- ๐ Keamanan data terjamin
- โก Akses tanpa IP statis
- ๐ Integrasi mudah dengan Linux
- IP publik statis
- Membuka port firewall
- Khawatir tentang CGNAT dari ISP
info
Catatan Platform:
Tutorial ini menggunakan Ubuntu 24.04 LTS, tetapi kompatibel dengan:
- Windows (x64/ARM)
- macOS
- Docker
- Raspberry Pi (ARM architecture)
Prasyarat untuk Self-Hosting Cloudflared di Linuxโ
- โ Akun Cloudflare (Daftar Gratis)
- โ Domain yang sudah terdaftar di Cloudflare
- โ Akses root/sudo ke perangkat lokal
- โ Koneksi internet stabil
Langkah 1: Registrasi Domain di Cloudflareโ

- Login ke Cloudflare Dashboard
- Klik "Add a Site"
- Masukkan domain Anda (contoh:
domainanda.com) - Pilih plan Free
# Contoh nameserver Cloudflare:
ns1.cloudflare.com
ns2.cloudflare.com
Troubleshooting Domainโ
Jika error "Invalid nameserver", update nameserver di registrar domain.
Proses propagasi DNS biasanya memakan waktu 5-30 menit.
Verifikasi status di WhatsMyDNS.
Langkah 2: Setup Zero Trust Tunnelโ

- Navigasi ke Access > Zero Trust
- Pilih Networks > Tunnels
- Klik Create a tunnel
- Beri nama yang deskriptif (contoh:
server-utama)
Langkah 3: Instalasi Cloudflaredโ
Untuk Ubuntu/Debianโ
# Download package terbaru
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
# Install package
sudo dpkg -i cloudflared-linux-amd64.deb
# Verifikasi instalasi
cloudflared --version
Untuk Sistem Lainโ
| OS | Install Command |
|---|---|
| Windows | Unduh dari release page |
| Docker | docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run <TOKEN> |
| Raspberry Pi | wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm |
Langkah 4: Koneksikan Tunnelโ
- Salin perintah dari dashboard Zero Trust
- Jalankan di terminal server Anda:
cloudflared tunnel --config /path/to/config.yml run <TUNNEL-NAME>
Verifikasi Koneksiโ
# Cek status
sudo systemctl status cloudflared
# Lihat log real-time
journalctl -u cloudflared -f --output cat
Langkah 5: Konfigurasi Public Hostnameโ

- Buka tunnel yang sudah dibuat
- Klik Add a public hostname
- Isi form:
- Subdomain: Misal
webataussh - Domain: Pilih domain yang sudah terdaftar
- Service: Protocol dan port lokal (contoh:
http://localhost:8080)
- Subdomain: Misal
Contoh Konfigurasiโ
| Layanan | URL Target | Contoh Subdomain | Catatan |
|---|---|---|---|
| Web Server | http://localhost:80 | www | Untuk akses website |
| SSH | ssh://localhost:22 | ssh | Akses remote server |
| VNC | http://localhost:5901 | vnc | Remote desktop |
| Database | tcp://localhost:5432 | db | Akses PostgreSQL |
Troubleshooting Lengkapโ
1. Tunnel Tidak Terkoneksiโ
# Restart service
sudo systemctl restart cloudflared
# Cek konektivitas
curl https://cloudflare.com
2. Domain Tidak Bisa Diaksesโ
# Test DNS
dig subdomain.domainanda.com
# Test koneksi tunnel
cloudflared tunnel ping
3. Error Certificateโ
# Reset certificate
cloudflared tunnel reset
# Hapus cache
rm -rf ~/.cloudflared
Best Practicesโ
Keamananโ
- Gunakan Access Policies untuk membatasi akses
- Aktifkan 2FA di akun Cloudflare
- Batasi akses berdasarkan negara jika perlu
Maintenanceโ
# Update rutin
sudo cloudflared update
# Backup konfigurasi
cp /etc/cloudflared/config.yml ~/cloudflared-backup.yml
Monitoringโ
- Aktifkan notifikasi di dashboard Cloudflare
- Monitor resource usage di server
Penutupโ
Keuntungan Menggunakan Cloudflare Tunnel:
โ๏ธ Akses server dari mana saja
๐ Keamanan enterprise secara gratis
โก Tidak perlu konfigurasi jaringan rumit
