Hiểu nôm na nhé 👇
Cloudflare Tunnel (cloudflared)reverse SSH (SSH tunnel) đều là “mở cổng từ trong ra ngoài”, không cần mở port trên server nội bộ. Nhưng đẳng cấp & mục đích khác nhau khá xa.


1️⃣ Cloudflare Tunnel là gì?

Cloudflare Tunnel cho phép server local / VPS private của bạn chủ động kết nối ra Cloudflare, rồi Cloudflare làm cổng trung gian public.

Luồng đi kiểu này:

Browser → Cloudflare (HTTPS) → Tunnel → Server local (localhost:80 / 127.0.0.1)

✔ Không cần:

  • Public IP
  • NAT port forward
  • Mở port 80/443
  • SSH

✔ Có sẵn:

  • SSL auto (Let’s Encrypt khỏi lo)
  • WAF, DDoS, rate-limit
  • Access Control (login Google, GitHub, email OTP…)

2️⃣ Reverse SSH là gì?

Reverse SSH thường dùng kiểu:

ssh -R 8080:localhost:80 user@vps_public

Luồng:

Browser → VPS public :8080 → SSH tunnel → local server

✔ Dùng được
❌ Nhưng:

  • Phải có VPS public
  • Không có HTTPS chuẩn
  • Không có WAF
  • Dễ rớt tunnel
  • Khó scale
  • Không dành cho end-user

👉 Reverse SSH phù hợp dev/debug, không phù hợp production


3️⃣ So sánh nhanh ⚔️

Tiêu chíCloudflare TunnelReverse SSH
Public IP❌ Không cần✅ Cần VPS
Mở port❌ Không❌ Không
HTTPS✅ Auto❌ Tự xử
WAF / DDoS✅ Có❌ Không
Auth user✅ Có (SSO)❌ Không
Stable✅ Rất ổn❌ Hay rớt
Dùng cho PROD✅ Chuẩn bài❌ Không nên
Dev nhanh⚠ Hơi setup✅ Rất nhanh

4️⃣ Cloudflare Tunnel dùng khi nào?

Rất hợp với mấy case của ông dev như bạn 👇

  • Server ở nhà / XAMPP / WSL / LAN
  • Không muốn mở port modem
  • Muốn expose:
    • WordPress local
    • Admin panel
    • API nội bộ
    • Selenium / bot dashboard
  • Muốn bảo mật cao nhưng setup gọn

👉 Cloudflare Tunnel = ngrok bản enterprise, free


5️⃣ Hướng dẫn setup Cloudflare Tunnel (chuẩn bài)

Bước 1: Cài cloudflared

# Ubuntu / VPS
curl -fsSL https://pkg.cloudflare.com/install.sh | sudo bash
sudo apt install cloudflared

Windows:

  • Download .exe
  • Add PATH

Bước 2: Login Cloudflare

cloudflared tunnel login

→ Mở browser → chọn domain


Bước 3: Tạo tunnel

cloudflared tunnel create my-tunnel

Bước 4: Gán domain

cloudflared tunnel route dns my-tunnel dev.domain.com

Bước 5: Config service local

~/.cloudflared/config.yml

tunnel: my-tunnel
credentials-file: /root/.cloudflared/xxxx.json
ingress:
  - hostname: dev.domain.com
    service: http://localhost:80
  - service: http_status:404

Bước 6: Run tunnel

cloudflared tunnel run my-tunnel

🎉 Xong – https://dev.domain.com trỏ thẳng về localhost


6️⃣ Điểm ăn tiền của Cloudflare Tunnel 🧠

🔥 Cái reverse SSH không bao giờ có:

  • Protect admin: Cloudflare Access → chỉ cho Gmail @company.com
  • Zero Trust
  • Không ai scan được IP server
  • Log, rule, block bot cực mạnh

7️⃣ Kết luận gọn

Reverse SSH = tạm bợ, dev, cứu cháy
Cloudflare Tunnel = chuẩn production, lâu dài, an toàn