Panduan Mendedahkan Perkhidmatan Tempatan Secara Selamat dalam ServBay Menggunakan Cloudflare Tunnel
Cloudflare Tunnel (dahulunya dikenali sebagai Argo Tunnel) ialah perkhidmatan rangkaian Zero Trust daripada Cloudflare yang membolehkan anda mendedahkan laman web, SSH, atau aplikasi lain yang berjalan secara tempatan ke internet secara selamat tanpa perlu membuka port awam atau menulis aturan firewall yang kompleks. Panduan ini menerangkan langkah demi langkah cara menubuhkan terowong selamat menggunakan alat klien cloudflared
dalam persekitaran pembangunan ServBay, membolehkan perkhidmatan ServBay anda diakses dari internet.
Kelebihan Utama:
- Keselamatan Ditingkatkan: Manfaatkan perlindungan rangkaian global Cloudflare, termasuk mitigasi DDoS dan firewall aplikasi web (WAF).
- Konfigurasi Mudah: Tiada keperluan untuk port forwarding, NAT atau aturan firewall inbound.
- Berasaskan Model Zero Trust: Sambungan adalah outbound, menjadikan permukaan serangan lebih kecil.
- Integrasi dengan Fungsi Cloudflare: Gunakan cache, pengoptimuman, analitik dan pelbagai lagi perkhidmatan Cloudflare.
Pengenalan
ServBay menyediakan persekitaran pembangunan tempatan yang bersepadu serta mudah diurus untuk pembangun, menyokong pelbagai bahasa (PHP, Node.js, Python, Go, Java, Ruby, Rust) serta pangkalan data (MySQL, PostgreSQL, MongoDB, Redis) dan pelayan web (Caddy, Nginx, Apache). Biasanya, laman web atau aplikasi yang anda kembangkan dengan ServBay hanya boleh diakses secara tempatan. Dengan menyertakan Cloudflare Tunnel, anda boleh berkongsi projek dengan rakan sekerja, melakukan demo kepada pelanggan, atau mendedahkan perkhidmatan tempatan untuk kegunaan sementara atau jangka panjang secara selamat, sambil memanfaatkan keunggulan Cloudflare dari segi keselamatan dan prestasi.
Prinsip Teknikal
Prinsip utama Cloudflare Tunnel adalah dengan menjalankan klien cloudflared
pada rangkaian tempatan anda (komputer yang menjalankan ServBay) untuk mewujudkan satu atau beberapa sambungan terenkripsi menggunakan protokol QUIC ke nod pinggir Cloudflare terdekat. Sambungan tersebut hanya keluar (outbound), jadi anda tidak perlu membuat konfigurasi inbound pada penghala atau firewall. Apabila pengguna mengakses domain yang dikaitkan dengan terowong tersebut, trafik akan melalui Cloudflare, diproksikan melalui terowong yang selamat ke klien cloudflared
di PC anda, kemudian diteruskan kepada perkhidmatan tempatan ServBay (contohnya, laman web pada https://servbay.local
atau http://localhost:8000
). Respon akan dikembalikan melalui laluan yang sama.
Persediaan Persekitaran
Sebelum memulakan konfigurasi, pastikan anda telah memenuhi syarat berikut:
- ServBay telah dipasang dan berfungsi: Persekitaran ServBay anda siap dan laman/perkhidmatan yang ingin didedahkan sedang berjalan dalam ServBay. Contohnya, domain lalai ServBay
servbay.local
boleh diakses. - Akaun Cloudflare: Anda mempunyai akaun Cloudflare yang sah.
- Domain dihoskan di Cloudflare: Anda memiliki domain yang telah ditambahkan ke akaun Cloudflare anda dan DNS domain itu dikendalikan oleh Cloudflare.
- Klien
cloudflared
telah dipasang: Anda perlu memasang alat baris perintahcloudflared
pada mesin macOS yang menjalankan ServBay.
1. Memasang Klien cloudflared
Untuk macOS, adalah disyorkan menggunakan Homebrew. Jika belum memasang Homebrew, sila rujuk dokumentasi rasmi Homebrew terlebih dahulu.
Pemasangan menggunakan Homebrew (disyorkan):
bash
brew update
brew install cloudflared
1
2
2
Muat turun dan pasang secara manual (untuk macOS ARM):
bash
# Muat turun binari untuk macOS ARM (Apple Silicon)
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-arm64.tgz | tar xz
# Salin binari ke direktori PATH sistem
sudo mv cloudflared /usr/local/bin/
1
2
3
4
2
3
4
Sahkan pemasangan: Selepas pemasangan, jalankan arahan berikut untuk memastikan cloudflared
telah dipasang dengan betul dan periksa versinya:
bash
cloudflared --version
# Contoh hasil: cloudflared version 2024.5.0 (built 2024-05-01)
1
2
2
Nombor versi mungkin berbeza, asalkan maklumat versi dipaparkan menandakan pemasangan berjaya.
2. Log Masuk ke Akaun Cloudflare
Jalankan arahan ini di terminal untuk memulakan proses kebenaran akaun Cloudflare:
bash
cloudflared tunnel login
1
Selepas dijalankan, cloudflared
akan membuka pelayar anda dan memaparkan halaman login Cloudflare. Pilih akaun yang menguruskan domain anda dan benarkan cloudflared
mengakses akaun tersebut. Selepas berjaya, maklumat pengesahan akan dipaparkan dan fail cert.pem
akan dihasilkan di direktori konfigurasi lalai (~/.cloudflared/
).
Konfigurasi Terowong Secara Praktikal
Seterusnya, kita akan mencipta terowong baharu dan mengarah trafik ke perkhidmatan tempatan ServBay.
Aliran Konfigurasi Utama
Cipta Terowong
Jalankan arahan berikut untuk mencipta terowong baharu di terminal. Anda boleh namakan terowong ini supaya mudah dikenali, misalnya
servbay-demo-tunnel
.bashcloudflared tunnel create servbay-demo-tunnel
1Setelah berjaya, arahan ini akan mengeluarkan ID terowong (UUID) serta laluan ke
credentials-file
. Catat ID, contohnyaa7b8c9d0-e1f2-3a4b-5c6d-7e8f9a0b1c2d
. Fail JSON kelayakan juga akan dijana dalam~/.cloudflared/
, gunakan fail itu untuk pengesahan semasa menjalankan terowong ini kemudian. Pastikan fail tersebut disimpan dengan selamat.Konfigurasi Rekod DNS
Supaya Cloudflare tahu untuk mengarahkan trafik domain tertentu ke terowong anda, buat rekod CNAME melalui arahan berikut:
bashcloudflared tunnel route dns servbay-demo-tunnel servbay-demo.yourdomain.com
1Gantikan
servbay-demo-tunnel
dengan nama terowong anda danservbay-demo.yourdomain.com
dengan subdomain pilihan anda (pastikanyourdomain.com
ialah domain yang diurus di Cloudflare).Arahan ini akan menambah rekod CNAME pada DNS Cloudflare untuk
servbay-demo.yourdomain.com
yang menunjuk ke<TerowongID>.cfargotunnel.com
.Tulis Fail Konfigurasi
cloudflared
menggunakan fail YAML untuk tetapan terowong - lalai di~/.cloudflared/config.yml
. Jika tiada fail, cipta yang baru.Edit fail
~/.cloudflared/config.yml
seperti berikut:yaml# tunnel: UUID terowong, ganti dengan ID sebenar anda tunnel: a7b8c9d0-e1f2-3a4b-5c6d-7e8f9a0b1c2d # credentials-file: Laluan ke fail kelayakan, biasanya di ~/.cloudflared/ dinamakan mengikut UUID terowong credentials-file: /Users/yourusername/.cloudflared/a7b8c9d0-e1f2-3a4b-5c6d-7e8f9a0b1c2d.json # Gantikannya dengan nama pengguna dan laluan sebenar anda ingress: # Aturan trafik masuk ke terowong - hostname: servbay-demo.yourdomain.com # Nama domain luaran, konsisten dengan rekod DNS yang dikonfigurasi service: https://servbay.local # Alamat perkhidmatan ServBay tempatan. Lalai ialah servbay.local dengan SSL. originRequest: # noTLSVerify: true # Jika gunakan sijil tandatangan sendiri (contoh: sijil CA Pengguna ServBay), aktifkan untuk langkau verifikasi TLS # Tidak perlu jika menggunakan sijil sah (cth: sijil Let's Encrypt melalui ServBay). # Dalam pembangunan tempatan, biasanya aktifkan CA Pengguna ServBay beserta noTLSVerify: true. - service: http_status:404 # Aturan fallback - kembalikan 404 jika tiada hostname padan
1
2
3
4
5
6
7
8
9
10
11
12
13
14Nota Penting:
- Tukar nilai
tunnel
dancredentials-file
kepada UUID dan laluan sebenar anda. - Tukar
hostname
kepada subdomain yang anda konfigurasikan dalam langkah 2. service: https://servbay.local
ialah alamat HTTPS laman utama ServBay. Jika anda menjalankan servis di port atau alamat berbeza (misal Node.js padahttp://localhost:3000
), tukar nilaiservice
dengan sewajarnya.- Opsyen
originRequest.noTLSVerify: true
mematikan verifikasi sijil SSL pada sambungan ke servis tempatan. Jika fasiliti SSL tempatan menggunakan sijil sendiri, aktifkan opsyen ini untuk elakkan ralat sambungan. Untuk sijil sah, tidak perlu diaktifkan.
- Tukar nilai
Jalankan Perkhidmatan Terowong
Setelah siap menulis fail konfigurasi, jalankan perkhidmatan terowong di terminal:
bash
cloudflared tunnel run servbay-demo-tunnel
1
Gantikan servbay-demo-tunnel
dengan nama terowong ciptaan anda.
cloudflared
akan bersambung ke rangkaian Cloudflare dan mewujudkan terowong. Status dan log sambungan akan dipaparkan di terminal. Selagi arahan ini berjalan dalam foreground, terowong kekal aktif. Untuk memastikan terowong berjalan di background sepanjang masa, anda boleh konfigurasikan sebagai perkhidmatan sistem (kaedah bergantung kepada OS dan keperluan, contohnya dengan launchctl
untuk macOS - di luar skop panduan ini).
Pengesahan Perkhidmatan
Apabila terowong berjaya dimulakan, anda boleh mengakses servis tempatan ServBay dari rangkaian luar menggunakan domain konfigurasi tadi.
Akses domain yang dikonfigurasi: Buka pelayar dan lawati domain yang anda tetapkan pada langkah DNS, contoh:
https://servbay-demo.yourdomain.com
.Perkara untuk disemak:
- Laman web ServBay yang dipaparkan sepatutnya sama seperti diakses secara tempatan (
https://servbay.local
). - Semak bar alamat, harus memaparkan sijil SSL yang sah - sijil ini dikeluarkan untuk domain anda oleh Cloudflare (bukan sijil tempatan ServBay, kerana sijil tempatan hanya untuk sambungan antara
cloudflared
dan ServBay). - Melalui alat pembangun, semak HTTP response header: patut kelihatan header berkaitan Cloudflare seperti
CF-RAY
, membuktikan trafik telah melalui rangkaian Cloudflare.
- Laman web ServBay yang dipaparkan sepatutnya sama seperti diakses secara tempatan (
Tips Konfigurasi Lanjutan
Routing Pelbagai Servis
Anda boleh tetapkan pelbagai aturan dalam bahagian ingress
pada config.yml
untuk routing trafik berdasarkan hostname
ke servis ServBay berlainan (misal: laman web dan API):
yaml
ingress:
- hostname: api.yourdomain.com
service: http://localhost:8080 # Contoh: servis API pada port 8080
- hostname: app.yourdomain.com
service: https://servbay.local # Laman utama anda
- service: http_status:404
1
2
3
4
5
6
2
3
4
5
6
Pantau Trafik & Log
cloudflared
menyediakan beberapa arahan untuk pemantauan dan debugging:
- Lihat metrik masa nyata:bash
cloudflared tunnel info servbay-demo-tunnel
1 - Dapatkan log terperinci: Arahan
cloudflared tunnel run
terus memaparkan log di terminal. Anda juga boleh tetapkan tahap log atau tulis ke fail log.
Integrasi Cloudflare Access
Untuk keselamatan yang lebih tinggi, anda boleh gunakan Cloudflare Access sebagai lapisan kawalan akses dan pengesahan kepada servis yang didedahkan oleh terowong. Cloudflare Access ialah sebahagian daripada platform Zero Trust dan menawarkan kawalan akses yang lebih fleksibel dari VPN tradisional. Konfigurasi lanjut boleh dilakukan melalui Dashboard Cloudflare.
Penyelesaian Masalah
Jika anda menghadapi isu ketika konfigurasi atau penggunaan, rujuk senarai masalah lazim dan penyelesaiannya di bawah:
Simptom | Penyelesaian |
---|---|
Paparan 502 Bad Gateway | Pastikan servis ServBay berjalan dan boleh dicapai (cth: lawat https://servbay.local lewat pelayar tempatan).Semak alamat dan port tempatan dalam service di config.yml betul.Jika servis tempatan gunakan HTTPS dan belum aktifkan noTLSVerify: true , semak status sijil atau pertimbangkan untuk aktifkannya. |
Ralat DNS/domain tidak boleh dicapai | Sahkan rekod CNAME telah ditambah pada DNS Cloudflare untuk domain, menunjuk ke <TerowongID>.cfargotunnel.com . Gunakan dig atau nslookup untuk mengesahkannya. |
Ralat sijil semasa akses domain | Jika ralat sijil Cloudflare, semak sama ada nilai hostname dalam config.yml padan dengan domain akses.Jika ralat SSL antara cloudflared dan servis tempatan, pastikan alamat service betul dan aktifkan originRequest.noTLSVerify: true jika perlu. |
Arahan cloudflared tunnel run gagal | Pastikan fail ~/.cloudflared/config.yml wujud dan format YAML betul.Semak nilai tunnel dan credentials-file betul.Pastikan cloudflared ada keizinan baca fail kelayakan dan konfigurasi. |
Sambungan perlahan atau tidak stabil | Semak status rangkaian tempatan. Cloudflare Tunnel menggunakan QUIC – periksa keserasian alam sekitar dengan QUIC. Pertimbangkan tetapan lokasi Cloudflare, atau hubungi sokongan Cloudflare. |
Ringkasan Kelebihan Penyelesaian
Dengan mengintegrasi Cloudflare Tunnel dalam ServBay, pembangun boleh:
- Berkongsi hasil pembangunan dengan selamat: Demo laman atau aplikasi kepada pelanggan/rakan sepasukan terus dari mesin tempatan.
- Menguji callback perkhidmatan luaran: Uji webhook atau callback yang memerlukan akses internet kepada mesin anda.
- Dapatkan perlindungan keselamatan bertaraf enterprise: Dilindungi dari DDoS, WAF, dan serangan siber oleh rangkaian Cloudflare.
- Sederhanakan konfigurasi rangkaian: Tiada lagi kerumitan port forwarding dan kawalan firewall.
- Manfaatkan rangkaian global Cloudflare: Percepat dan stabilkan akses melalui rangkaian Anycast global.
ServBay sebagai persekitaran pembangunan tempatan yang kuat, digandingkan dengan keupayaan dedahan selamat Cloudflare Tunnel, memberikan aliran kerja yang pantas dan selamat untuk pembangun moden.
Kesimpulan
Panduan ini menghuraikan cara memasang dan mengkonfigurasi cloudflared
dalam persekitaran ServBay, seterusnya menubuhkan dan menjalankan Cloudflare Tunnel bagi mendedahkan perkhidmatan web tempatan anda ke internet secara selamat. Dengan mengikuti langkah-langkah ini, anda dapat memaksimumkan manfaat sokongan pelbagai teknologi oleh ServBay dan kelebihan sekuriti yang ditawarkan Cloudflare Tunnel, sekaligus memperbaik kecekapan pembangunan dan kerjasama. Ingat, Cloudflare Tunnel adalah sebahagian daripada platform Zero Trust – kami mengesyorkan menerokai fungsi lanjut seperti Cloudflare Access untuk kawalan akses dan sekuriti tahap tinggi.