Skip to main content

One post tagged with "tunnel"

View All Tags

Cara Self-Host Cloudflared Tunnel di Linux

ยท 3 min read
Valerino Gozen
Back End Engineer at Berijalan

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โ€‹

  1. โœ… Akun Cloudflare (Daftar Gratis)
  2. โœ… Domain yang sudah terdaftar di Cloudflare
  3. โœ… Akses root/sudo ke perangkat lokal
  4. โœ… Koneksi internet stabil

Langkah 1: Registrasi Domain di Cloudflareโ€‹

Cloudflared self-host di Linux: Domain Setup

  1. Login ke Cloudflare Dashboard
  2. Klik "Add a Site"
  3. Masukkan domain Anda (contoh: domainanda.com)
  4. 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โ€‹

Cloudflared self-host di Linux: Zero Trust Setup

  1. Navigasi ke Access > Zero Trust
  2. Pilih Networks > Tunnels
  3. Klik Create a tunnel
  4. 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โ€‹

OSInstall Command
WindowsUnduh dari release page
Dockerdocker run cloudflare/cloudflared:latest tunnel --no-autoupdate run <TOKEN>
Raspberry Piwget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm

Langkah 4: Koneksikan Tunnelโ€‹

  1. Salin perintah dari dashboard Zero Trust
  2. 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โ€‹

Cloudflared self-host di Linux: Public Hostname Setup

  1. Buka tunnel yang sudah dibuat
  2. Klik Add a public hostname
  3. Isi form:
    • Subdomain: Misal web atau ssh
    • Domain: Pilih domain yang sudah terdaftar
    • Service: Protocol dan port lokal (contoh: http://localhost:8080)

Contoh Konfigurasiโ€‹

LayananURL TargetContoh SubdomainCatatan
Web Serverhttp://localhost:80wwwUntuk akses website
SSHssh://localhost:22sshAkses remote server
VNChttp://localhost:5901vncRemote desktop
Databasetcp://localhost:5432dbAkses 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

Referensi Tambahanโ€‹