Cloudflare Tunnel là gì? Cloudflare Tunnel là giải pháp an toàn để kết nối các địa chỉ IP nội bộ dạng 192.168.x.x ra website dạng domain.com mà không phải NAT hoặc mở Port trên Router (không an toàn).
Yêu cầu:
- Domain dạng domain.com đã Add vào Cloudflare
- Server nội bộ có IP: 192.168.x.x
- Tài nguyên chạy trên Selfhost hoặc VPS đang chạy: http://192.168.x.x:5678 (Ví dụ n8n)
- Có quyền Cloudflare Zero Trust
Cloudflare Tunnel có thể cài trực tiếp trên Linux. Tuy nhiên, trong bài này để đơn giản, tôi sẽ hướng dẫn cài trên Docker.
1️⃣ Tạo Tunnel trên Cloudflare
- Vào Cloudflare Dashboard
- Zero Trust → Networks → Connectors
- Create a tunnel > Cloudflared
- Đặt tên cho Tunnel. Ví dụ: Home Tunnel
- Chọn Docker
- Copy Tunnel Token (để sử dụng tại bước 2)
2️⃣ Chạy cloudflared container trên server
docker run -d \
--name cloudflared \
--restart unless-stopped \
cloudflare/cloudflared:latest \
tunnel run \
--token YOUR_TUNNEL_TOKEN
📌 Container này chỉ cần chạy 1 lần cho nhiều dịch vụ (Portainer, n8n, qdrant…)
3️⃣ Gán domain n8n.domain.com
Sau khi hoàn thành vào Connector > Home Tunnel > Published application routes và chọn Add và điền như sau:
Hostname: n8n.domain.com
Service: 192.168.x.x:5678
4️⃣Truy cập
🌍 Mở trình duyệt:
✔️ Có HTTPS
✔️ Không cần NAT / Port Forward
✔️ IP nội bộ được bảo mật hoàn toàn
Bật bảo mật đăng nhập Cloudflare Access
Bật Google Authenticator / Email OTP
- Zero Trust → Access → Applications
- Add application → Self-hosted
- Domain: portainer.lamluat.com
- Policy:
- Allow
- Emails: email của bạn
- Auth method:
- Email OTP
- Google Authenticator
- Cloudflare One App
👉 Sau đó:
- Truy cập n8n.domain.com
- Phải xác thực trước khi thấy Portainer
- Kiểm tra nhanh nếu không vào được
- 🔍 Check container: docker ps | grep cloudflared
- 🔍 Check Portainer: curl http://192.168.x.x:5678
- 🔍 Log tunnel: docker logs cloudflared-portainer
Bạn có thể dùng 1 tunnel duy nhất cho nhiều service
| Service | Domain |
| Portainer | portainer.domain.com |
| n8n | n8n.domain.com |
| Qdrant | qdrant.domain.com |
| Ssh | ssh.domain.com |