Hướng dẫn sử dụng Quick Tunnels và bảo mật bằng xác thực email

Hướng dẫn sử dụng Quick Tunnels và bảo mật bằng xác thực email

Quick Tunnels là gì và khi nào nên sử dụng?

Quick Tunnels là tính năng của Cloudflare Tunnel dành cho nhu cầu thử nghiệm và phát triển. Khi chạy cloudflared với địa chỉ dịch vụ cục bộ, hệ thống tạo một hostname ngẫu nhiên thuộc trycloudflare.com và chuyển tiếp lưu lượng từ internet về ứng dụng đang chạy trên máy của bạn. Bạn không cần sở hữu tên miền hoặc tài khoản Cloudflare để tạo Quick Tunnel.

Cách triển khai này đặc biệt hữu ích khi cần gửi nhanh một bản demo cho đồng nghiệp, cho khách hàng xem phiên bản đang phát triển hoặc kiểm thử một dịch vụ web từ bên ngoài mạng cục bộ. Tuy nhiên, Quick Tunnels không được thiết kế để thay thế hạ tầng production có yêu cầu về hostname ổn định, khả năng vận hành lâu dài và chính sách truy cập phức tạp.

Tại sao nên bật xác thực email cho Quick Tunnels?

Quick Tunnel thông thường tạo một URL công khai và bất kỳ ai biết URL đó đều có thể gửi yêu cầu tới dịch vụ phía sau tunnel. Điều này thuận tiện cho thử nghiệm nhanh nhưng có thể không phù hợp khi bản demo chứa dữ liệu nội bộ, giao diện quản trị hoặc chức năng chưa muốn công khai.

Với tùy chọn –allowed-mail, cloudflared có thể giới hạn Quick Tunnel cho những địa chỉ email hoặc tên miền email được cho phép. Người truy cập phải xác thực bằng mã PIN dùng một lần được gửi tới email trước khi tiếp cận ứng dụng cục bộ. Người nhận không cần có tài khoản Cloudflare.

Protected Quick Tunnels: simple accountless authentication for your next dev project
Protected Quick Tunnels: simple accountless authentication for your next dev project

Xác thực email giúp giảm rủi ro từ việc URL Quick Tunnel bị chia sẻ ngoài dự kiến, nhưng không nên được xem là lý do để đưa bí mật, khóa API, dữ liệu production hoặc thông tin nhạy cảm không cần thiết vào một môi trường demo.

Cơ chế xác thực email của Quick Tunnels hoạt động thế nào?

Khi Quick Tunnel được khởi chạy với –allowed-mail, danh sách email được chỉ định trở thành chính sách truy cập của tunnel đó. Khi người dùng mở URL trycloudflare.com, họ phải nhập địa chỉ email và hoàn thành bước xác minh bằng mã PIN được gửi tới hộp thư.

Nếu danh tính đáp ứng chính sách truy cập, người dùng mới được chuyển tiếp tới dịch vụ localhost. Việc xác thực được thực hiện trước khi yêu cầu đến origin, nhờ đó ứng dụng cục bộ không phải tự xây dựng một màn hình đăng nhập chỉ để bảo vệ bản demo ngắn hạn.

Hướng dẫn sử dụng Quick Tunnels với xác thực email

1. Cài đặt hoặc cập nhật cloudflared

Trước tiên, hãy cài đặt cloudflared từ nguồn chính thức của Cloudflare. Nếu máy đã có cloudflared, nên cập nhật lên phiên bản mới hỗ trợ Protected Quick Tunnels. Bạn có thể kiểm tra phiên bản hiện tại bằng lệnh: cloudflared –version.

2. Kiểm tra ứng dụng đang chạy trên localhost

Đảm bảo dịch vụ cần chia sẻ đang hoạt động bình thường trước khi mở tunnel. Ví dụ, nếu ứng dụng chạy tại cổng 8080, hãy thử truy cập http://localhost:8080 trên chính máy phát triển. Bước này giúp phân biệt lỗi của ứng dụng với lỗi kết nối tunnel khi xử lý sự cố.

Laptop của lập trình viên chạy localhost và terminal cloudflared, luồng kết nối qua Cloudflare tới trình duyệt bên ngoài có biểu tượng khóa và xác thực email
Laptop của lập trình viên chạy localhost và terminal cloudflared, luồng kết nối qua Cloudflare tới trình duyệt bên ngoài có biểu tượng khóa và xác thực email

3. Khởi chạy Quick Tunnel

Để tạo một Quick Tunnel không giới hạn người truy cập, sử dụng lệnh: cloudflared tunnel –url http://localhost:8080. Sau khi kết nối thành công, cloudflared sẽ hiển thị một URL ngẫu nhiên thuộc trycloudflare.com. URL này tồn tại trong thời gian tiến trình cloudflared hoạt động và hostname có thể thay đổi khi tạo Quick Tunnel mới.

4. Giới hạn một địa chỉ email

Nếu chỉ muốn một người cụ thể truy cập, thêm cờ –allowed-mail vào lệnh. Ví dụ: cloudflared tunnel –url http://localhost:8080 –allowed-mail [email protected]. Khi người nhận mở URL, họ phải xác minh địa chỉ email bằng mã PIN trước khi truy cập ứng dụng.

5. Cho phép nhiều địa chỉ email

Bạn có thể lặp lại –allowed-mail nhiều lần, chẳng hạn: cloudflared tunnel –url http://localhost:8080 –allowed-mail [email protected] –allowed-mail [email protected]. Cloudflare cũng hỗ trợ danh sách phân tách bằng dấu phẩy, ví dụ: –allowed-mail ‘[email protected],[email protected]’.

6. Cho phép toàn bộ email thuộc một tên miền

Nếu cần chia sẻ cho cả tổ chức, có thể sử dụng wildcard theo dạng ‘*@example.com’. Ví dụ: cloudflared tunnel –url http://localhost:8080 –allowed-mail ‘*@example.com’. Nên đặt biểu thức wildcard trong dấu nháy để tránh shell tự mở rộng ký tự *. Đây là điểm quan trọng vì chỉ ghi domain.com không tương đương với cú pháp wildcard được Cloudflare hướng dẫn.

Cận cảnh terminal với lệnh cloudflared tunnel --url localhost:8080 --allowed-mail và URL trycloudflare.com được tạo
Cận cảnh terminal với lệnh cloudflared tunnel –url localhost:8080 –allowed-mail và URL trycloudflare.com được tạo

7. Kiểm tra quy trình đăng nhập

Mở URL trycloudflare.com được tạo trong terminal bằng trình duyệt. Nhập một email nằm trong danh sách được phép, nhận mã PIN qua email và hoàn thành bước xác minh. Sau đó, kiểm tra ứng dụng để bảo đảm nội dung được tải chính xác và thử thêm một địa chỉ không nằm trong danh sách nhằm xác nhận chính sách giới hạn truy cập đang hoạt động như mong muốn.

Bảng so sánh Quick Tunnels thông thường và Quick Tunnels có xác thực

Tiêu chíQuick Tunnels thông thườngQuick Tunnels có xác thực email
Kiểm soát truy cậpAi có URL đều có thể truy cậpGiới hạn theo email hoặc tên miền email
Cách khởi chạyChỉ cần khai báo URL localhostThêm –allowed-mail vào lệnh
Tài khoản Cloudflare của người nhậnKhông cầnKhông cần
Xác minh danh tínhKhôngMã PIN dùng một lần gửi qua email
Tình huống phù hợpDemo hoặc thử nghiệm có thể công khaiDemo giới hạn cho đồng nghiệp, khách hàng hoặc nhóm nội bộ

Những giới hạn cần biết trước khi dùng Quick Tunnels

Quick Tunnels được Cloudflare định hướng cho testing và development, không phải môi trường production. Dịch vụ không có cam kết uptime; hostname thay đổi mỗi lần tạo Quick Tunnel mới; mỗi tunnel hỗ trợ tối đa 200 yêu cầu đang xử lý đồng thời và các yêu cầu vượt giới hạn có thể nhận phản hồi HTTP 429. Quick Tunnels cũng không hỗ trợ Server-Sent Events.

Một giới hạn đáng chú ý khác là xác thực email yêu cầu phiên trình duyệt tương tác. Vì vậy, Protected Quick Tunnels không phù hợp cho những client không tương tác cần gọi endpoint tự động. Nếu webhook, bot, pipeline hoặc một hệ thống máy-máy cần truy cập dịch vụ, hãy đánh giá phương án Cloudflare Tunnel và cơ chế xác thực phù hợp hơn thay vì mặc định dùng xác thực email của Quick Tunnels.

Các lưu ý bảo mật khi chia sẻ ứng dụng cục bộ

  • Chỉ cấp quyền cần thiết: ưu tiên từng địa chỉ email cụ thể khi số người truy cập ít; chỉ dùng wildcard cho cả domain khi thực sự cần thiết.
  • Không coi URL là bí mật: URL ngẫu nhiên giúp giảm khả năng bị đoán nhưng không thay thế cơ chế kiểm soát truy cập.
  • Không đưa dữ liệu nhạy cảm vào demo: loại bỏ thông tin đăng nhập, secret, token, dữ liệu khách hàng và các biến môi trường không cần thiết trước khi chia sẻ.
  • Dừng tunnel khi hoàn tất: quyền truy cập kết thúc khi tiến trình cloudflared dừng. Nếu cần thay đổi danh sách người được phép, hãy dừng cloudflared và tạo lại Quick Tunnel với chính sách mới.
  • Không dùng cho production: với hostname ổn định, lưu lượng production hoặc yêu cầu kiểm soát truy cập nâng cao, nên triển khai Cloudflare Tunnel theo mô hình production thay vì Quick Tunnel.

Các lỗi thường gặp khi thiết lập Quick Tunnels

Email hợp lệ nhưng không truy cập được

Hãy kiểm tra chính xác địa chỉ được truyền vào –allowed-mail, đặc biệt là lỗi chính tả. Nếu sử dụng wildcard tên miền, cú pháp nên có dạng ‘*@example.com’ thay vì chỉ nhập example.com.

Không nhận được mã PIN qua email

Kiểm tra thư mục spam hoặc thư rác, xác nhận địa chỉ email đã nhập chính xác và thử lại sau khi chắc chắn hộp thư vẫn nhận email bình thường. Với email doanh nghiệp, chính sách lọc thư của tổ chức cũng có thể ảnh hưởng đến việc nhận mã xác minh.

URL hoạt động nhưng ứng dụng báo lỗi

Trước tiên hãy mở trực tiếp địa chỉ localhost trên máy chạy cloudflared. Nếu localhost cũng lỗi, vấn đề thường nằm ở ứng dụng hoặc cổng dịch vụ chứ không phải Quick Tunnel. Đồng thời kiểm tra lệnh –url có sử dụng đúng giao thức và cổng mà ứng dụng đang lắng nghe hay không.

Tự động hóa không vượt qua được bước xác thực

Xác thực email của Protected Quick Tunnels cần một phiên trình duyệt tương tác, vì vậy không nên thiết kế pipeline CI/CD hoặc client máy-máy dựa trên thao tác nhập mã PIN thủ công. Với trường hợp tự động hóa, cần lựa chọn kiến trúc tunnel và phương thức xác thực khác phù hợp với workload.

Khi nào nên chuyển từ Quick Tunnel sang Cloudflare Tunnel?

Quick Tunnels phát huy giá trị khi mục tiêu là đưa một ứng dụng localhost lên internet trong thời gian ngắn và giảm tối đa các bước cấu hình. Xác thực bằng –allowed-mail bổ sung lớp kiểm soát hữu ích cho những bản demo chỉ dành cho một số người nhất định.

Khi dự án bắt đầu cần hostname ổn định, vận hành liên tục, tích hợp chính sách truy cập phức tạp hoặc phục vụ lưu lượng production, Quick Tunnels không còn là lựa chọn phù hợp. Lúc này, nên chuyển sang Cloudflare Tunnel được cấu hình cho môi trường production và xây dựng chính sách bảo mật tương ứng với mức độ quan trọng của ứng dụng.

Kết luận

Điểm đáng chú ý trong hướng dẫn sử dụng Quick Tunnels là bạn có thể kết hợp sự tiện lợi của một URL trycloudflare.com tạm thời với lớp xác thực email ngay từ cloudflared. Chỉ cần –allowed-mail, bản demo có thể được giới hạn cho một email, nhiều email hoặc toàn bộ địa chỉ thuộc một tên miền. Dù vậy, Quick Tunnels vẫn là công cụ dành cho phát triển và thử nghiệm; với hệ thống production, hãy sử dụng mô hình Cloudflare Tunnel phù hợp thay vì xem Quick Tunnel như giải pháp triển khai lâu dài.