Cloudflare Tunnel
Cloudflare Tunnel là gì?
Cloudflare Tunnel là một dịch vụ cho phép bạn expose các ứng dụng chạy trên máy local ra internet một cách an toàn mà không cần mở port trên router hay firewall. Tunnel tạo ra một kết nối outbound từ máy tính của bạn đến Cloudflare edge network, sau đó Cloudflare sẽ proxy traffic từ internet về ứng dụng local của bạn.
Tại sao nên dùng Cloudflare Tunnel cho development?
🎯 Vấn đề với localhost và free tunnel services
Vấn đề | localhost | free tunnel service | Cloudflare Tunnel |
---|---|---|---|
Domain thay đổi | Không có domain | Domain random mỗi lần chạy | Custom domain cố định |
Config phải update | Không share được | Phải update config liên tục | Set once, dùng mãi |
HTTPS support | Cần setup manual | Có sẵn nhưng domain thay đổi | HTTPS + custom domain |
External webhooks | Không nhận được | Mỗi lần test phải update URL | URL không đổi |
💡 Core benefits của custom domain với Cloudflare Tunnel
1. Domain cố định - Config một lần
# Thay vì mỗi lần chạy ngrok:
# https://abc123.ngrok.io (session 1)
# https://xyz789.ngrok.io (session 2)
# → Phải update config mỗi lần!
# Với Cloudflare Tunnel:
https://dev.yourdomain.com # LUÔN GIỐNG NHAU
2. Webhook development dễ dàng
# Shopify/GitHub/Stripe webhook URL:
https://webhook.yourdomain.com/api/webhooks
# ↑ Set một lần, không bao giờ thay đổi
Cách sử dụng Cloudflare Tunnel
Có nhiều cách để setup và quản lý Cloudflare Tunnel:
Phương pháp | Mô tả | Use case |
---|---|---|
Manual run (locally-managed) | Quản lý tunnel qua CLI và config files local | Development, testing |
Service mode | Tunnel chạy như system service, tự động start | Production, always-on |
Zero Trust Dashboard | Quản lý tunnel qua web interface | Team collaboration |
Trong docs này, chúng ta sẽ tập trung vào Manual run (locally-managed) vì đây là cách linh hoạt nhất cho development và cho phép bạn hiểu rõ cách hoạt động của tunnel.
Hướng dẫn này được thực hiện trên macOS. Các nền tảng khác (Linux, Windows) có workflow tương tự với một số điều chỉnh về installation và file paths.
Tham khảo Official Cloudflare Tunnel Documentation cho hướng dẫn chi tiết theo từng platform.
Prerequisites
1. Cài đặt cloudflared
Hướng dẫn installation cho macOS. Các platform khác tham khảo Cloudflare Installation Guide.
- macOS (Recommended)
- Manual Download
brew install cloudflared
# Download from GitHub releases
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-amd64.tgz
tar -xzf cloudflared-darwin-amd64.tgz
sudo mv cloudflared /usr/local/bin/
2. Domain trỏ về Cloudflare
Bạn cần có domain đã được add vào Cloudflare và nameservers đã pointing về Cloudflare.
Setup Manual Tunnel (Locally-managed)
Bước 1: Authenticate với Cloudflare
cloudflared tunnel login
Lệnh này sẽ:
- Mở browser để bạn login vào Cloudflare account
- Chọn domain bạn muốn sử dụng
- Download certificate vào
~/.cloudflared/cert.pem
(macOS/Linux) hoặc%USERPROFILE%\.cloudflared\cert.pem
(Windows)
Bước 2: Tạo tunnel
# Tạo tunnel với tên tùy chọn
cloudflared tunnel create my-dev-tunnel
Tunnel credentials written to ~/.cloudflared/[UUID].json (macOS/Linux)
Created tunnel my-dev-tunnel with id [UUID]