Panduan lengkap setup Cloudflare Tunnel untuk server rumah Anda. Akses aplikasi lokal dengan domain publik secara aman dan gratis.
Buka website Cloudflare dan daftarkan akun Anda.
https://dash.cloudflare.com
Masukkan domain yang akan Anda gunakan.
Add Site → masukkan domain kamu
Ganti nameserver domain di penyedia domain Anda dengan nameserver dari Cloudflare.
Tunggu hingga status domain menjadi Active di dashboard Cloudflare.
Install cloudflared pada server Anda.
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dpkg -i cloudflared-linux-amd64.deb
cloudflared --version
cloudflared tunnel login
Browser akan terbuka. Pilih domain Anda dan klik Approve.
cloudflared tunnel create server-rumah
cloudflared tunnel route dns server-rumah domainkamu.com/app.domainkamu.com
Contoh:
loudflared tunnel route dns server-rumah app.mydomain.com
atau langsung di web cloudflared1.Pilih DNS 2.pilih nama tunnel(server3,server1 dll) 3.pilih Add route 4.pilih published application 5.add domain yg akan di publih 6.add url local pc/server (http://localhost:8888 atau IP)contoh link saya :https://dash.cloudflare.com/24deda804633b66e89e1a4befd93df92/tunnels/c6cba803-bb60-47d3-8ac8-8ab978c39e92/overview
mkdir -p /root/.cloudflared nano ~/.cloudflared/config.yml
Isi file dengan konfigurasi berikut:
tunnel: server-rumah credentials-file: /home/user/.cloudflared/xxxx.json ingress: - hostname: app.domainkamu.com service: http://localhost:8080 - service: http_status:404
/home/server/.cloudflared/config.yml
cloudflared tunnel run server-rumah
cloudflared tunnel route dns delete 2ae1a87f-09b7-4c8a-bbb7-a3708a0bccf3 ssh.blackcoffee.my.id
sudo cloudflared service install sudo systemctl enable cloudflared sudo systemctl start cloudflared
mkdir -p /etc/cloudflaredcp /root/.cloudflared/config.yml /etc/cloudflared/config.ymlcp /root/.cloudflared/*.json /etc/cloudflared/
Cara menjalankan tunnel kedua server-guwalor:
# Buat tunnel kedua cloudflared tunnel create server-guwalor # Output: Tunnel credentials written to /root/.cloudflared/d4cba504-c640-48ad-9473-ddc7c995f597.json # Buat config khusus nano /root/.cloudflared/config-guwalor.yml
Isi config-guwalor.yml:
tunnel: server-guwalor credentials-file: /root/.cloudflared/d4cba504-c640-48ad-9473-ddc7c995f597.json ingress: - hostname: guwalor.web.id service: http://localhost:9972 - service: http_status:404
# Login ulang rm -f ~/.cloudflared/cert.pem cloudflared tunnel login # Route DNS cloudflared tunnel route dns --overwrite-dns d4cba504-c640-48ad-9473-ddc7c995f597 guwalor.web.id cloudflared tunnel route dns --overwrite-dns d4cba504-c640-48ad-9473-ddc7c995f597 www.guwalor.web.id # Jalankan cloudflared tunnel --config /root/.cloudflared/config-guwalor.yml run
Mengakses SSH melalui Cloudflare Tunnel.
# 1. Daftarkan domain ssh cloudflared tunnel route dns server-kamu ssh.domain.com # 2. Nonaktifkan proxy di Cloudflare DNS (status jadi abu-abu) # Login ke Cloudflare → DNS → edit domain ssh → disable proxy # 3. Aktifkan SSH sudo systemctl start ssh # 4. Buat config SSH nano ~/.ssh/config
Isi ~/.ssh/config:
Host ssh.domain.com ProxyCommand cloudflared access ssh --hostname %h
# 5. Test cloudflared access ssh --hostname ssh.scriptcode.my.id # 6. Jika error websocket bad handshake # Pastikan SSH service berjalan dan firewall mengizinkan
Menjalankan Cloudflare Tunnel di dalam container Docker.
Jalankan tunnel di Docker (OS fisik):
# Untuk server-docker1 docker run -d \ --name cloudflared-server-docker1 \ --restart always \ -v /root/.cloudflared:/root/.cloudflared \ cloudflare/cloudflared:latest \ tunnel run server-docker1 # Untuk nk docker run -d \ --name cloudflared-server-nk \ --restart always \ -v /root/.cloudflared:/root/.cloudflared \ cloudflare/cloudflared:latest \ tunnel run nk # Untuk server3 docker run -d \ --name cloudflared-server-3 \ --restart always \ -v /root/.cloudflared:/root/.cloudflared \ cloudflare/cloudflared:latest \ tunnel run server3