Cài Cloudflare Tunnel Trên VPS TrumVPS - Ẩn IP Thật, SSL Miễn Phí, Không Cần Mở Port

📅 05/2026 · ⏱ 10 phút đọc · 🏷 Bảo Mật

Bạn có biết rằng mỗi khi mở port 80/443 trên VPS, IP thật của bạn bị lộ hoàn toàn? Chỉ cần một cuộc tấn công DDoS là website của bạn có thể sập ngay lập tức. Cloudflare Tunnel (trước đây là Argo Tunnel) giải quyết triệt để vấn đề này — nó tạo một đường hầm bảo mật từ VPS lên Cloudflare, giúp bạn không cần mở bất kỳ port nào mà website vẫn truy cập được từ internet, kèm theo SSL miễn phí và chống DDoS tích hợp.

🔒 Tại sao nên dùng Cloudflare Tunnel? Ẩn IP thật → Không ai biết IP VPS của bạn. Không cần mở port → Giảm 99% bề mặt tấn công. SSL tự động → Không cần cài Let's Encrypt. Chống DDoS → Cloudflare chặn ở lớp edge trước khi đến VPS của bạn.

Cloudflare Tunnel Hoạt Động Như Thế Nào?

Cloudflare Tunnel tạo một kết nối outbound từ VPS của bạn đến mạng lưới edge của Cloudflare thông qua daemon cloudflared. Khi người dùng truy cập domain của bạn:

  1. Request đến Cloudflare edge → được lọc DDoS, cache, WAF
  2. Cloudflare chuyển request qua tunnel đã thiết lập đến VPS
  3. Website của bạn phản hồi qua tunnel → Cloudflare trả về người dùng

Toàn bộ quá trình không cần mở port 80 hay 443 trên VPS. Firewall của bạn có thể đóng hoàn toàn các port inbound.

Yêu Cầu

Bước 1: Cài Đặt cloudflared

Cloudflare cung cấp package chính thức cho hầu hết các distro. Với Ubuntu, cài như sau:

curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null

echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared jammy main' | sudo tee /etc/apt/sources.list.d/cloudflared.list

apt update && apt install cloudflared

Kiểm tra cài đặt:

cloudflared --version

Bước 2: Xác Thực Với Cloudflare

Chạy lệnh xác thực — nó sẽ mở trình duyệt để bạn đăng nhập Cloudflare:

cloudflared tunnel login

Sau khi đăng nhập, chọn domain bạn muốn sử dụng. File chứng chỉ sẽ được lưu tại ~/.cloudflared/cert.pem.

Bước 3: Tạo Tunnel

Tạo tunnel mới với tên gợi nhớ:

cloudflared tunnel create my-tunnel

Lệnh này tạo tunnel trên Cloudflare dashboard và lưu credentials JSON tại ~/.cloudflared/<tunnel-id>.json.

Liệt kê các tunnel đã tạo:

cloudflared tunnel list

Bước 4: Cấu Hình DNS & Tunnel

Tạo file cấu hình ~/.cloudflared/config.yml:

tunnel: YOUR-TUNNEL-ID
credentials-file: /root/.cloudflared/YOUR-TUNNEL-ID.json

ingress:
  - hostname: yourdomain.com
    service: http://localhost:80
  - hostname: www.yourdomain.com
    service: http://localhost:80
  - service: http_status:404

Giải thích:

Tạo DNS record tự động:

cloudflared tunnel route dns my-tunnel yourdomain.com

cloudflared tunnel route dns my-tunnel www.yourdomain.com

Cloudflare sẽ tự động tạo CNAME record trỏ đến tunnel. Bạn có thể kiểm tra trên Cloudflare dashboard → DNS.

Bước 5: Chạy Tunnel Như Service

Cài đặt tunnel chạy như systemd service để tự khởi động cùng VPS:

cloudflared service install

systemctl start cloudflared

systemctl enable cloudflared

Kiểm tra trạng thái:

systemctl status cloudflared

Xem logs nếu có lỗi:

journalctl -u cloudflared -f

Bước 6: Kiểm Tra & Bảo Mật

Sau khi tunnel chạy, truy cập domain của bạn qua HTTPS. Cloudflare tự động cấp SSL, bạn không cần làm gì thêm.

Đóng tất cả port inbound (đây là điểm mạnh nhất của tunnel):

ufw default deny incoming

ufw allow 22/tcp ← chỉ mở SSH

ufw enable

Kết quả: VPS của bạn giờ đây chỉ mở duy nhất port 22 (SSH). Tất cả traffic web đi qua tunnel bảo mật. IP thật của bạn hoàn toàn ẩn — kẻ tấn công chỉ thấy IP của Cloudflare.

Nâng Cao: Chạy Nhiều Service Qua Một Tunnel

Bạn có thể expose nhiều service qua cùng một tunnel bằng cách thêm ingress rules:

ingress:
  - hostname: web.yourdomain.com
    service: http://localhost:80
  - hostname: portainer.yourdomain.com
    service: http://localhost:9443
  - hostname: api.yourdomain.com
    service: http://localhost:3000
  - service: http_status:404

Mỗi subdomain trỏ đến một port nội bộ khác nhau — tất cả đều được bảo vệ bởi Cloudflare.

Ưu Điểm Cloudflare Tunnel So Với Cách Truyền Thống

Tiêu chíMở Port Truyền ThốngCloudflare Tunnel
Bảo mật IP❌ Lộ IP thật✅ Ẩn hoàn toàn
Chống DDoS❌ Phải tự xử lý✅ Cloudflare chặn sẵn
SSL⚠️ Phải cài riêng✅ Tự động
Port mở❌ 80, 443 mở✅ Không cần mở port
Chi phíMiễn phí✅ Miễn phí

Các Lỗi Thường Gặp & Cách Fix

Lỗi "Unable to reach the origin service"

Nguyên nhân: cloudflared không kết nối được đến service local. Kiểm tra Nginx/Apache có đang chạy trên port đúng không: curl localhost:80. Nếu không có response → restart web server.

Lỗi "ERR_SSL_VERSION_OR_CIPHER_MISMATCH"

Vào Cloudflare dashboard → SSL/TLS → chọn chế độ "Full" hoặc "Full (strict)". Không chọn "Flexible" nếu origin server của bạn có SSL.

Tunnel chạy nhưng không nhận request

Kiểm tra DNS: dig yourdomain.com — phải thấy CNAME record trỏ đến <tunnel-id>.cfargotunnel.com. Nếu không → chạy lại cloudflared tunnel route dns.

Cần VPS để cài Cloudflare Tunnel?

TrumVPS - CPU Platinum, NVMe SSD - Tốc độ cao, ổn định cho tunnel 24/7!

Mã giảm giá: 42089QPI03TI (-9%)

THUÊ VPS NGAY