Cloudflare Tunnel

Server Rumah
Dengan Cloudflare

Panduan lengkap setup Cloudflare Tunnel untuk server rumah Anda. Akses aplikasi lokal dengan domain publik secara aman dan gratis.

7+ Tunnel Ubuntu / Debian Docker Support
1
Setup
5
Tunnel
10
Config
14
Autostart
20
SSH
25
Docker
1

Daftar Akun Cloudflare

Registrasi

Buka website Cloudflare dan daftarkan akun Anda.

Website
https://dash.cloudflare.com
Gunakan email aktif untuk verifikasi akun.
2

Add Site

Tambah Domain

Masukkan domain yang akan Anda gunakan.

Action
Add Site → masukkan domain kamu
3

Ganti Nameserver

DNS

Ganti nameserver domain di penyedia domain Anda dengan nameserver dari Cloudflare.

Perubahan nameserver bisa memakan waktu hingga 24 jam.
4

Tunggu Status Active

Proses

Tunggu hingga status domain menjadi Active di dashboard Cloudflare.

Status Active menandakan domain sudah terverifikasi.
5

Install Cloudflared

Ubuntu / Debian

Install cloudflared pada server Anda.

Bash
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb
6

Cek Versi Cloudflared

Verifikasi
Bash
cloudflared --version
7

Login ke Cloudflare

Auth
Bash
cloudflared tunnel login

Browser akan terbuka. Pilih domain Anda dan klik Approve.

8

Buat Tunnel

Tunnel
Bash
cloudflared tunnel create server-rumah
Simpan: Tunnel ID dan file .json yang dihasilkan.
Tunnel ID
2ae1a87f-09b7-4c8a-bbb7-a3708a0bccf3
Credentials File
/root/.cloudflared/xxxx.json
9

Route DNS

Routing
Bash
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 cloudflared 
1.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
10

Buat File Config YAML

Config
Bash
mkdir -p /root/.cloudflared
nano ~/.cloudflared/config.yml

Isi file dengan konfigurasi berikut:

YAML
tunnel: server-rumah
credentials-file: /home/user/.cloudflared/xxxx.json

ingress:
  - hostname: app.domainkamu.com
    service: http://localhost:8080
  - service: http_status:404
Note: Jika menggunakan Docker, lokasi config di /home/server/.cloudflared/config.yml
11

Jalankan Tunnel

Run
Bash
cloudflared tunnel run server-rumah
12

Hapus Subdomain

Delete
Bash
cloudflared tunnel route dns delete 2ae1a87f-09b7-4c8a-bbb7-a3708a0bccf3 ssh.blackcoffee.my.id
13

Autostart (Service)

Auto
Bash
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
Jika ada subdomain dengan dua tunnel, copy config:
mkdir -p /etc/cloudflared
cp /root/.cloudflared/config.yml /etc/cloudflared/config.yml
cp /root/.cloudflared/*.json /etc/cloudflared/
14

Multi Tunnel

Multiple

Cara menjalankan tunnel kedua server-guwalor:

Bash
# 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:

YAML
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
Bash
# 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
15

Setup SSH dengan Cloudflare

SSH

Mengakses SSH melalui Cloudflare Tunnel.

Bash
# 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:

Config
Host ssh.domain.com
  ProxyCommand cloudflared access ssh --hostname %h
Bash
# 5. Test
cloudflared access ssh --hostname ssh.scriptcode.my.id

# 6. Jika error websocket bad handshake
# Pastikan SSH service berjalan dan firewall mengizinkan
16

Cloudflared di Docker

Docker

Menjalankan Cloudflare Tunnel di dalam container Docker.

Daftar Tunnel yang tersedia:
server1
2855b622-0593-415f-8e15-31d0844666db
aplikasipintar
a281567f-8568-4fea-88a6-2c40ff2d1e8a
server-docker1
b502005c-2f60-4b06-a7d5-775968f2f867
server3
c6cba803-bb60-47d3-8ac8-8ab978c39e92
nk
49421be4-df7d-4f9c-b94a-7219b4524819

Jalankan tunnel di Docker (OS fisik):

Bash
# 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
Arsitektur: Internet → Cloudflare Tunnel → Nginx → PHP-FPM → index.php
Selesai
Server siap digunakan
Aman
Terproteksi Cloudflare
Cepat
Koneksi optimal