Cara Mengakses Web Server di PC dari Internet dengan Cloudflare Tunnel Tanpa IP Public

Cara Mengakses Web Server di PC dari Internet dengan Cloudflare Tunnel Tanpa IP Public



Pada artikel sebelumnya kita sudah membahas cara mengakses komputer dari luar jaringan menggunakan port forwarding dan DMZ. Cara tersebut bisa bekerja dengan baik, tetapi biasanya kita membutuhkan IP Public dari provider. Pada beberapa provider, pelanggan juga berada di balik CGNAT sehingga port dari internet tidak dapat langsung diteruskan ke router kita.

Kali ini kita akan memakai cara yang berbeda, yaitu Cloudflare Tunnel. Dengan metode ini, aplikasi cloudflared yang dipasang di PC akan membuat koneksi keluar menuju jaringan Cloudflare. Karena koneksinya dimulai dari PC kita sendiri, kita tidak perlu membuka port router, tidak perlu mematikan firewall router, dan tidak perlu memiliki IP Public.
Alur sederhananya:

Pengunjung → subdomain kita → Cloudflare → Cloudflare Tunnel → web server di PC

Apa yang Bisa Kita Akses?

  1. Web Server
    Website dari Apache, Nginx, IIS, XAMPP, Laragon, Node.js, Docker, dan web server lainnya dapat dipublikasikan menggunakan subdomain milik kita.

  2. Dashboard Aplikasi Lokal
    Contohnya adalah dashboard monitoring, Home Assistant, panel NAS, aplikasi kantor, atau aplikasi buatan sendiri yang sebelumnya hanya dapat dibuka melalui localhost.

  3. Layanan dari Perangkat Lain di Jaringan Lokal
    Walaupun cloudflared dipasang di satu PC, tunnel juga dapat diarahkan ke perangkat lain yang masih satu jaringan, misalnya http://192.168.1.20:8080.

  4. SSH atau Remote Desktop
    Layanan non-HTTP seperti SSH, TCP, dan RDP juga didukung, tetapi cara aksesnya berbeda dan membutuhkan cloudflared atau Cloudflare One Client pada perangkat pengguna. Pada tutorial ini kita fokus terlebih dahulu ke aplikasi berbasis web.

Kelebihan Dibanding Port Forwarding

  • Tidak membutuhkan IP Public statis maupun dinamis.
  • Tetap dapat digunakan pada koneksi CGNAT.
  • Tidak perlu membuka port, mengaktifkan DMZ, atau mematikan firewall router.
  • Alamat yang digunakan berupa domain atau subdomain sehingga lebih mudah diingat.
  • Koneksi publik menggunakan HTTPS dari Cloudflare.
  • Satu tunnel dapat digunakan untuk beberapa aplikasi lokal.

Persiapan

Sebelum mulai, siapkan beberapa hal berikut:
  1. Akun Cloudflare.
  2. Domain yang sudah ditambahkan ke Cloudflare dan menggunakan nameserver Cloudflare.
  3. PC Windows yang selalu menyala dan memiliki koneksi internet.
  4. Aplikasi atau web server lokal yang sudah bisa dibuka dari PC tersebut.
Pada contoh ini kita anggap aplikasi lokal sudah berjalan di alamat berikut:
http://localhost:8000
Silakan ganti port 8000 sesuai port aplikasi kamu. Sebelum membuat tunnel, buka alamat tersebut melalui browser di PC. Jika aplikasi belum bisa dibuka secara lokal, Cloudflare Tunnel juga belum dapat meneruskannya.

Langkah-Langkah Membuat Cloudflare Tunnel

  1. Masuk ke Dashboard Cloudflare
    Buka Dashboard Cloudflare, masuk menggunakan akun kamu, kemudian buka menu Networking > Tunnels.

  2. Buat Tunnel Baru
    Klik tombol Create Tunnel. Berikan nama yang mudah dikenali, contohnya pc-rumah, kemudian klik Create Tunnel.

  3. Pilih Sistem Operasi PC
    Pada bagian Setup Environment, pilih Windows dan pilih arsitektur yang sesuai. Kebanyakan PC modern menggunakan arsitektur 64-bit.

  4. Install dan Jalankan cloudflared
    Cloudflare akan menampilkan perintah instalasi yang sudah berisi token khusus untuk tunnel kita. Buka Command Prompt atau PowerShell sebagai Administrator, kemudian salin dan jalankan perintah yang diberikan oleh dashboard.

    Bentuk perintahnya kurang lebih seperti berikut:
    cloudflared.exe service install <TUNNEL_TOKEN>
    Tunggu sampai proses instalasi selesai. Perintah tersebut akan memasang cloudflared sebagai Windows Service sehingga tunnel dapat berjalan otomatis saat PC dinyalakan.

    Penting: token tunnel adalah data rahasia. Jangan memasukkan token asli ke screenshot, artikel, chat publik, atau membagikannya kepada orang lain. Jika token terlanjur bocor, lakukan rotasi token melalui dashboard Cloudflare.

  5. Pastikan Tunnel Berstatus Healthy
    Kembali ke dashboard Cloudflare dan tunggu beberapa saat. Jika koneksi berhasil, tunnel akan menampilkan status Healthy. Klik Continue untuk melanjutkan.

  6. Tambahkan Published Application
    Masuk ke tunnel yang baru dibuat, buka tab Routes, lalu pilih Add route > Published application. Isi pengaturannya seperti contoh berikut:

    Subdomain server
    Domain domainkamu.com
    Service URL http://localhost:8000

    Dengan contoh tersebut, aplikasi lokal nantinya dapat dibuka melalui:
    https://server.domainkamu.com
    Jika web server berada di perangkat lain dalam satu jaringan, bagian Service URL dapat diisi dengan IP lokal perangkat tersebut, contohnya http://192.168.1.20:8080. Setelah semua benar, klik Add route.

  7. Tes dari Luar Jaringan
    Matikan Wi-Fi pada ponsel dan gunakan koneksi seluler, kemudian buka subdomain yang sudah dibuat. Jika halaman aplikasi tampil, berarti web server di PC sudah dapat diakses dari internet tanpa IP Public dan tanpa port forwarding.

Menambahkan Aplikasi Lokal Lain

Kita tidak perlu membuat tunnel baru untuk setiap aplikasi. Masuk kembali ke tunnel pc-rumah, pilih Routes > Add route > Published application, lalu buat hostname dan Service URL yang berbeda.
Kegunaan Hostname Publik Service URL
Website www.domainkamu.com http://localhost:80
Dashboard dashboard.domainkamu.com http://localhost:3000
Perangkat LAN panel.domainkamu.com http://192.168.1.20:8080

Amankan Aplikasi dengan Cloudflare Access

Setelah sebuah Published Application dibuat, alamat tersebut pada dasarnya dapat dibuka oleh siapa saja di internet. Hal ini cocok untuk website publik, tetapi tidak aman untuk dashboard admin, panel NAS, CCTV, atau aplikasi pribadi.
Untuk aplikasi pribadi, aktifkan Cloudflare Access dan buat aturan login berdasarkan email atau identitas pengguna. Dengan begitu, pengunjung harus melewati halaman autentikasi Cloudflare sebelum dapat membuka aplikasi lokal kita.
Jangan mengandalkan alamat subdomain yang sulit ditebak sebagai pengamanan. Pastikan aplikasi juga selalu diperbarui, menggunakan password yang kuat, dan hanya layanan yang benar-benar diperlukan yang dipublikasikan.

Cara Cepat untuk Tes Sementara

Jika hanya ingin melakukan tes singkat tanpa domain, Cloudflare menyediakan Quick Tunnel. Setelah cloudflared tersedia di PC, jalankan:
cloudflared tunnel --url http://localhost:8000
Cloudflare akan memberikan alamat acak dengan domain trycloudflare.com. Alamat ini bersifat sementara dan akan berhenti bekerja saat perintah ditutup, jadi jangan dipakai sebagai alamat utama untuk kebutuhan produksi.

Troubleshooting

  1. Muncul Error 502 Bad Gateway
    Pastikan aplikasi lokal sedang berjalan, alamat Service URL benar, port tidak salah, dan pilihan http:// atau https:// sesuai dengan aplikasi lokal.

  2. Status Tunnel Inactive atau Down
    Pastikan PC menyala, tidak sedang dalam mode sleep, internet aktif, serta Windows Service untuk cloudflared berjalan. Pada jaringan yang sangat ketat, pastikan koneksi keluar ke Cloudflare pada port 7844 tidak diblokir.

  3. Bisa Dibuka Lokal tetapi Tidak Bisa dari Domain
    Periksa kembali hostname pada Routes, tunggu propagasi DNS beberapa saat, lalu coba menggunakan browser atau koneksi lain.

  4. Tunnel Mati Ketika PC Tidak Digunakan
    Atur Windows agar tidak otomatis masuk ke mode sleep. Tunnel hanya aktif selama PC dan layanan cloudflared tetap berjalan.

Kesimpulan

Dengan Cloudflare Tunnel, kita dapat mempublikasikan web server dari PC sendiri tanpa meminta IP Public kepada provider, tanpa DDNS, serta tanpa membuka semua port atau mengaktifkan DMZ pada router. Cara ini sangat membantu untuk pengguna internet rumahan yang berada di balik CGNAT.

Walaupun koneksi ke PC tidak dibuka langsung dari internet, keamanan aplikasi tetap menjadi tanggung jawab kita. Untuk layanan yang bersifat pribadi, selalu tambahkan autentikasi menggunakan Cloudflare Access dan jangan mempublikasikan panel sensitif tanpa perlindungan.

Baiklah, sekian tutorial ini saya bagikan. Semoga bermanfaat. Jika masih bingung atau menemukan kendala, silakan tuliskan pertanyaan pada kolom komentar.

Terima kasih.