Lewati ke isi

Server & Infrastruktur

Online-kan Server Tanpa IP Publik dengan Cloudflare Tunnel

Internet kantor pakai CGNAT? Langkah memakai Cloudflare Tunnel (cloudflared) untuk membuka server lokal ke domain, memberi kebijakan akses, dan batasnya.

Terbit 6 menit baca

Jawaban singkat

Cloudflare Tunnel menghubungkan server ke Cloudflare lewat koneksi keluar dari cloudflared, jadi tidak perlu IP publik atau port forwarding. Buat tunnel di dashboard, pasang cloudflared dengan token, lalu petakan hostname ke layanan lokal. SSH, TCP, dan RDP butuh cloudflared di klien.

Daftar isi
  1. Apa saja yang perlu disiapkan?
  2. Langkah membuat Cloudflare Tunnel
  3. Langkah 1. Buat tunnel di dashboard
  4. Langkah 2. Pasang cloudflared dan jalankan dengan token
  5. Langkah 3. Petakan hostname ke layanan lokal
  6. Langkah 4. Batasi siapa yang boleh masuk
  7. Langkah 5. Tutup jalur lain
  8. Bagaimana dengan SSH, RDP, atau protokol selain web?
  9. Kapan Cloudflare Tunnel cukup, kapan butuh IP publik atau VPS?
  10. Pertanyaan yang sering diajukan

Punya server di kantor atau di rumah, tapi internetnya memakai CGNAT sehingga tidak bisa diakses dari luar? Cloudflare Tunnel adalah salah satu jalan keluarnya. Alih-alih menunggu koneksi masuk ke IP publik, sebuah program kecil bernama cloudflared di servermu membuka koneksi keluar ke jaringan Cloudflare. Pengunjung mengakses domainmu, Cloudflare meneruskan permintaan lewat koneksi itu, dan server tidak perlu IP publik atau port forwarding sama sekali.

Karena koneksinya keluar, dokumentasi Cloudflare menyebut firewall server bahkan boleh menutup semua koneksi masuk. Panduan ini membahas langkahnya per 4 November 2026, cara menambahkan kebijakan akses, dan kapan cara ini kurang cocok dibanding IP publik atau VPS.

Apa saja yang perlu disiapkan?

Menurut panduan resmi, kamu membutuhkan:

  • Akun Cloudflare.
  • Domain yang sudah dikelola di Cloudflare. Ini wajib untuk mempublikasikan aplikasi ke hostname milikmu.
  • Server atau VM dengan akses internet untuk menjalankan cloudflared.
  • Bila firewall membatasi koneksi keluar, server harus bisa menjangkau Cloudflare di port 7844.

Kalau belum paham kenapa CGNAT membuat server tidak bisa diakses, baca dulu apa itu IP publik.

Langkah membuat Cloudflare Tunnel

Langkah 1. Buat tunnel di dashboard

Di dashboard Cloudflare, buka Networking lalu Tunnels, pilih Create Tunnel, dan beri nama yang jelas, misalnya kantor-web. Pilih Create Tunnel lagi untuk menyimpan.

Tampilan dashboard Cloudflare cukup sering berubah. Bila menunya berbeda, cari bagian Tunnels di area Networking atau Zero Trust.

Langkah 2. Pasang cloudflared dan jalankan dengan token

Di bagian Setup Environment, pilih sistem operasi dan arsitektur servermu. Dashboard menampilkan perintah pemasangan, termasuk token tunnel. Di Linux, intinya:

sudo cloudflared service install <TOKEN_TUNNEL>

Perintah ini memasang cloudflared sebagai service sehingga tunnel otomatis tersambung lagi setelah reboot. Bila kamu memakai Docker, panduan resmi memberi alternatif:

docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token <TOKEN_TUNNEL>

Token ini adalah kunci tunnel. Jangan menaruhnya di repositori publik.

Setelah tersambung, pilih Continue. Status tunnel di halaman Tunnels harus menjadi Healthy.

Langkah 3. Petakan hostname ke layanan lokal

Buka tunnel yang baru dibuat. Di bagian Routes, pilih Add route lalu Published application. Isi:

  • Hostname: subdomain dan domain, misalnya app dan domainmu.com.
  • Service URL: alamat layanan dari sudut pandang server tempat cloudflared berjalan, misalnya http://localhost:8080. Layanan di mesin lain dalam jaringan lokal juga bisa, misalnya http://192.168.1.20:80.

Simpan dengan Add route. Cloudflare membuat record DNS untuk hostname tersebut, yang mengarah ke tunnel. Buka https://app.domainmu.com dan aplikasimu seharusnya tampil dengan HTTPS dari Cloudflare.

Satu tunnel bisa melayani banyak hostname. Tambahkan route lain untuk setiap aplikasi.

Langkah 4. Batasi siapa yang boleh masuk

Hostname yang dipublikasikan bisa diakses siapa pun di internet. Untuk panel admin, dashboard internal, atau alat seperti Grafana, tambahkan Cloudflare Access:

  1. Buka Zero Trust, lalu Access controls, lalu Applications.
  2. Pilih Create new application, lalu Self-hosted and private.
  3. Tambahkan public hostname yang sama dengan route tunnel.
  4. Buat Access policy, misalnya hanya mengizinkan alamat email tim kamu.
  5. Pilih metode login (identity provider), lalu Create.

Dokumentasi menegaskan semua aplikasi Access bersifat tolak secara bawaan, jadi hanya pengguna yang cocok dengan policy Allow yang bisa masuk. Panduan resmi juga menyarankan membuat aplikasi Access sebelum route tunnel, agar tidak ada jeda ketika hostname sudah terbuka tanpa pelindung.

Langkah 5. Tutup jalur lain

Karena trafik sekarang masuk lewat tunnel, hapus port forwarding lama di router bila ada, dan pastikan layanan lokal tidak terbuka ke jaringan lain yang tidak perlu. Biarkan aplikasi mendengarkan di localhost bila cloudflared berjalan di mesin yang sama.

Bagaimana dengan SSH, RDP, atau protokol selain web?

Cloudflare Tunnel bisa menghubungkan server SSH, remote desktop, dan protokol TCP lain. Bedanya dengan web, panduan resmi menyebut layanan non-HTTP seperti SSH, TCP, dan RDP membutuhkan cloudflared juga di sisi klien, atau perangkat klien Cloudflare One. Jadi kamu tidak bisa sekadar membuka ssh server.domainmu.com dari komputer mana saja tanpa persiapan.

Untuk kebutuhan seperti CCTV, perangkat IoT, atau aplikasi yang harus dibuka dari aplikasi bawaan vendor, keterbatasan ini sering jadi masalah. Pilihan lain untuk kasus CCTV dibahas di membuka CCTV dari HP saat CGNAT.

Kapan Cloudflare Tunnel cukup, kapan butuh IP publik atau VPS?

KebutuhanCloudflare TunnelIP publik atau VPS
Website atau aplikasi web di belakang CGNATCocokCocok
Tanpa membuka port masukYa, koneksi keluar sajaPort harus dibuka dan dijaga
Domain wajib di CloudflareYaTidak
SSH, RDP, TCP dari klien mana sajaKlien butuh cloudflaredLangsung
Protokol khusus (VoIP, game, aplikasi vendor)Sering tidak praktisLangsung
Trafik melewati pihak ketigaYa, lewat CloudflareTidak harus
Server tetap bergantung pada listrik dan internet lokalYaVPS tidak

Ada dua hal lain yang perlu kamu timbang. Pertama, semua trafik melewati Cloudflare, sehingga kamu mengikuti ketentuan layanan dan batas paket Cloudflare, termasuk untuk jenis konten tertentu. Baca ketentuan Tunnel sebelum memakai untuk layanan berat seperti streaming. Kedua, server di kantor tetap mati saat listrik atau internet kantor putus. Tunnel menyelesaikan masalah akses, bukan masalah ketersediaan.

Kalau kebutuhannya port terbuka untuk protokol apa pun, alternatifnya adalah IP publik statis, VPN dengan IP statik, atau memindahkan layanan ke VPS. Untuk layanan ringan yang cukup dengan beberapa port, NAT VPS juga bisa jadi pilihan hemat.

Pertanyaan yang sering diajukan

Apakah Cloudflare Tunnel butuh IP publik?

Tidak. cloudflared membuat koneksi keluar ke Cloudflare, sehingga server di belakang CGNAT atau router tanpa port forwarding tetap bisa dipublikasikan.

Bisakah memakai Cloudflare Tunnel tanpa domain sendiri?

Untuk pengujian, Quick Tunnels memberi alamat sementara di trycloudflare.com. Untuk mempublikasikan aplikasi ke hostname tetap, domain harus dikelola di Cloudflare.

Apakah bisa menjalankan cloudflared di lebih dari satu server untuk satu tunnel?

Bisa. Dokumentasi menyebut satu tunnel boleh punya beberapa proses cloudflared yang disebut connector, dan masing-masing tersambung ke data center Cloudflare terdekat.

Apakah trafik ke server tetap terenkripsi?

Koneksi pengunjung ke Cloudflare memakai HTTPS, dan koneksi cloudflared ke Cloudflare juga terenkripsi. Dari cloudflared ke layanan lokal mengikuti Service URL yang kamu isi, misalnya http di localhost.

Sebelum menganggap tunnel siap dipakai:

  • Domain sudah aktif di Cloudflare
  • Status tunnel Healthy dan cloudflared terpasang sebagai service
  • Setiap hostname mengarah ke Service URL yang benar
  • Aplikasi internal dilindungi Cloudflare Access sebelum dibuka
  • Port forwarding lama di router sudah ditutup
  • Token tunnel tidak tersimpan di tempat publik

Sumber & referensi

Baca juga