Kiến Thức Linux Tutorial

Cloudflare Tunnel: Giải pháp thay thế Ngrok hiệu quả

Cloudflare Tunnel

1. Cloudflare Tunnel là gì?

Cloudflare Tunnel là một giải pháp giúp bạn đưa các ứng dụng hoặc dịch vụ đang chạy trong môi trường cục bộ (như trên laptop, máy chủ cá nhân, hoặc mạng nội bộ) ra internet một cách an toàn và dễ dàng.

Nhờ công cụ này, bạn không còn cần phải thực hiện các thao tác phức tạp như mở port, cấu hình NAT, hay chỉnh sửa DNS. Cloudflare Tunnel hoạt động bằng cách thiết lập một kết nối được mã hóa giữa hệ thống của bạn và hạ tầng Cloudflare, từ đó tạo ra một điểm truy cập công khai cho ứng dụng mà vẫn đảm bảo an toàn và bảo mật.

Ví dụ, nếu bạn đang phát triển một ứng dụng web trên máy cá nhân tại địa chỉ http://localhost:3000, bạn có thể tạo một đường dẫn công khai bảo mật chỉ với một lệnh duy nhất. Nhờ đó, đồng nghiệp, khách hàng hoặc đối tác của bạn có thể truy cập và kiểm thử ứng dụng qua internet mà không cần triển khai lên môi trường production hay cấu hình mạng phức tạp.

2. So sánh Cloudflare Tunnel với Ngrok

Theo kinh nghiệm cá nhân của mình nếu bạn là người mới bắt đầu và cần giải pháp đơn giản, chỉ cần một tunnel đơn giản cho việc testing nhanh thì Ngrok hay Cloudflare Tunnel đều được, mình thì dùng Cloudflare nhé.

Tuy nhiên nếu bạn cần một giải pháp không giới hạn tunnel và băng thông, độ ổn định cao hay quan tâm đến bảo mật và tính năng nâng cao thì hãy chọn Cloudflare Tunnel.

Dưới đây là bản so sánh chi tiết giữa 2 dịch vụ:

Tiêu chíCloudflare TunnelNgrokDịch vụ tốt hơn
Giới hạn & Chi phí
Băng thông (bản miễn phí)Không giới hạnGiới hạn 1GB/thángCloudflare
Số kết nối đồng thời (miễn phí)Không giới hạn1 tunnelCloudflare
Hỗ trợ domain tùy chỉnh (miễn phí)Có (với domain riêng)Chỉ hỗ trợ ở bản trả phíCloudflare
Giá của gói trả phí cơ bản$5/tháng (Zero Trust)$10/tháng (Pro)Cloudflare
Hiệu suất & Độ tin cậy
Độ ổn định của kết nối lâu dàiRất tốtCó thể gặp tình trạng timeoutCloudflare
Tỉ lệ uptime99.99%+99.9%+Cloudflare
Hạ tầng toàn cầu300+ trung tâm dữ liệuHoạt động tại 20+ khu vựcCloudflare
Ping/Độ trễ kết nốiThấp hơnCao hơnCloudflare
Tính năng bảo mật
Tích hợp Zero TrustGiới hạnCloudflare
Tường lửa ứng dụng web (WAF)KhôngCloudflare
Quản lý botKhôngCloudflare
mTLS (Mutual TLS)Có (chỉ bản trả phí)Cloudflare
Khả năng mở rộng
Hỗ trợ cấu hình nhiều endpointGiới hạn trong bản miễn phíCloudflare
Hỗ trợ TCP/UDPĐầy đủGiới hạn trong bản miễn phíCloudflare
Quản lý nhiều tunnelDễ dàngCòn hạn chếCloudflare
Chạy như serviceChỉ hỗ trợ ở bản trả phíCloudflare
Dễ sử dụng
Mức độ dễ học và sử dụngCần tìm hiểu kỹThân thiện, dễ làm quenNgrok
Giao diện DashboardCòn phức tạpRất trực quan, dễ sử dụngNgrok
Thiết lập nhanhMất vài bướcThiết lập chỉ với một lệnh đơn giảnNgrok
Hướng dẫn cho người mớiĐầy đủ và rõ ràngChỉ dẫn chi tiết, dễ hiểu hơnNgrok
Công cụ Debug
Request InspectorChỉ hỗ trợ cơ bảnCác tính năng nâng caoNgrok
Replay RequestsKhông hỗ trợNgrok
Lịch sử requestCó nhưng bị giới hạnHỗ trợ đầy đủNgrok
Kiểm tra webhookQua Zero TrustTích hợp sẵnNgrok
Tính năng khác
Tích hợp với CI/CDNgang bằng
Hỗ trợ custom HTTP HeadersNgang bằng
APIĐầy đủĐầy đủNgang bằng
Hỗ trợ cộng đồngRộng rãiRộng rãiNgang bằng

3. Phân loại Tunnel trong Cloudflare Tunnel

Cloudflare Tunnel được chia thành 2 loại tùy theo mục đích sử dụng và nhu cầu của bạn: Quick Tunnels và Named Tunnels.

3.1 Quick Tunnels (Không cần domain)

  • Không yêu cầu tạo tài khoản Cloudflare.
  • Không cần sở hữu hoặc cấu hình domain riêng.
  • URL được tạo ngẫu nhiên, có dạng: https://random-words.trycloudflare.com.
  • Thiết lập cực kỳ nhanh chóng chỉ với một lệnh duy nhất.
  • Phù hợp cho những mục đích chia sẻ nhanh hoặc demo tạm thời, chẳng hạn khi bạn muốn đồng nghiệp kiểm tra ứng dụng mình đang phát triển mà không phải mất thời gian cấu hình.

3.2 Named Tunnels (Cần domain)

  • Yêu cầu một tài khoản Cloudflare.
  • Bắt buộc phải có domain đã được liên kết với tài khoản Cloudflare.
  • URL có thể được tùy chỉnh, ví dụ như: https://app.yourdomain.com.
  • Hỗ trợ các thiết lập và cấu hình phức tạp hơn (ví dụ: nhiều endpoint, thêm các quy tắc bảo mật, v.v.).
  • Có thể hoạt động như một dịch vụ cố định, luôn chạy liên tục trong hệ thống.
  • Phù hợp cho các môi trường phát triển hoặc triển khai ứng dụng lâu dài, cần sự ổn định.

4. Hướng dẫn thiết lập Quick Tunnel

4.1 Cài đặt cloudflared

  • Ubuntu/Debian:

Bash

curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
  • MacOS (homebrew):

Bash

brew install cloudflare/cloudflare/cloudflared

Kiểm tra cài đặt:

Bash

cloudflared --version

4.2 Tạo Quick Tunnel

Giả sử bạn có một ứng dụng web đang chạy trên cổng 3000:

Bash

cloudflared tunnel --url http://localhost:3000

Kết quả:

Txt

2023-03-12T12:34:56Z INF Starting tunnel
2023-03-12T12:34:57Z INF Registering trycloudflare.com DNS CNAME for proud-insect-123.trycloudflare.com
2023-03-12T12:34:59Z INF +------------------------------------------------------------+
2023-03-12T12:34:59Z INF |  Your quick Tunnel has been created! Visit it at:           |
2023-03-12T12:34:59Z INF |  https://proud-insect-123.trycloudflare.com                 |
2023-03-12T12:34:59Z INF +------------------------------------------------------------+

Bây giờ, bất kỳ ai có URL này đều có thể truy cập vào ứng dụng của bạn. Tunnel sẽ tiếp tục hoạt động miễn là terminal vẫn đang mở.

5. Kết luận

So với Ngrok, Cloudflare Tunnel nổi bật với sự ổn định cao, khả năng tùy chỉnh linh hoạt và tích hợp chặt chẽ với các dịch vụ bảo mật của Cloudflare. Dù bạn làm việc cá nhân hay trong đội nhóm, Cloudflare Tunnel là một giải pháp tiện lợi, cho phép bạn dễ dàng chia sẻ công việc của mình với mọi người.

Add Comment

Click here to post a comment