Hướng dẫn cấu hình Cloudflare Tunnel proxy ngược bằng cloudflared trong ServBay
Cloudflare Tunnel (trước đây là Argo Tunnel) là dịch vụ proxy ngược không có tín nhiệm do Cloudflare cung cấp, cho phép bạn an toàn truy cập dịch vụ nội bộ mà không cần mở cổng công cộng. Hướng dẫn này sẽ giúp bạn thiết lập một đường hầm an toàn trong môi trường ServBay thông qua cloudflared, giúp truy cập dịch vụ nội bộ từ internet.
Nguyên lý kỹ thuật
Cloudflare Tunnel thiết lập một kết nối outbound được mã hóa (dựa trên giao thức QUIC), kết nối dịch vụ nội bộ một cách an toàn với các nút biên của Cloudflare. Giải pháp này hoàn toàn bỏ qua NAT traversal, không cần cấu hình quy tắc tường lửa, đồng thời tích hợp khả năng bảo vệ DDoS và tường lửa ứng dụng web (WAF) của Cloudflare.
Chuẩn bị môi trường
1. Cài đặt khách hàng cloudflared
Hệ thống macOS (kiến trúc ARM):
# Tải xuống tệp nhị phân
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-amd64.tgz | tar xz
sudo mv cloudflared /usr/local/bin/
2
3
Xác nhận cài đặt:
cloudflared --version
# cloudflared version 2024.5.0 (built 2024-05-01)
2
2. Đăng nhập vào tài khoản Cloudflare
cloudflared tunnel login
Sau khi thực hiện, trình duyệt sẽ tự động mở, bạn chọn tên miền cần quản lý để hoàn tất việc ủy quyền.
Cấu hình đường hầm thực tế
Quy trình cấu hình cốt lõi
- Tạo đường hầm
cloudflared tunnel create servbay-tunnel
# Ví dụ đầu ra: Created tunnel servbay-tunnel with id xxxx-xxxx-xxxx
2
- Cấu hình bản ghi DNS
cloudflared tunnel route dns servbay-tunnel servbay-tunnel.yourdomain.com
- Soạn thảo tệp cấu hình
Tạo~/.cloudflared/config.yml
:
tunnel: <TUNNEL_ID>
credentials-file: /path/to/credentials.json
ingress:
- hostname: servbay-tunnel.yourdomain.com
service: https://servbay.local
originRequest:
noTLSVerify: true # Bật nếu cần bỏ qua xác thực chứng chỉ nội bộ
- service: http_status:404 # Quy tắc dự phòng mặc định
2
3
4
5
6
7
8
9
Khởi động dịch vụ đường hầm
cloudflared tunnel run servbay-tunnel
Xác thực dịch vụ
- Truy cập vào tên miền đã cấu hình:
https://servbay-tunnel.yourdomain.com
- Những điểm cần xác thực:
- Hiển thị nội dung nhất quán với dịch vụ nội bộ
- Thanh địa chỉ trình duyệt hiển thị chứng chỉ SSL hợp lệ do Cloudflare cấp phát
- Tiêu đề phản hồi chứa nhận diện
CF-RAY
Mẹo cấu hình nâng cao
Định tuyến nhiều dịch vụ
ingress:
- hostname: api.yourdomain.com
service: https://api.local
- hostname: app.yourdomain.com
service: https://app.local
2
3
4
5
Giám sát lưu lượng
# Xem số liệu thời gian thực
cloudflared tunnel info servbay-tunnel
# Lấy nhật ký chi tiết
cloudflared tunnel logs servbay-tunnel
2
3
4
5
Xử lý sự cố
Hiện tượng | Giải pháp |
---|---|
502 Bad Gateway | Kiểm tra xem dịch vụ nội bộ có đang chạy không, kiểm tra địa chỉ service trong cấu hình đường hầm có đúng không |
Lỗi phân giải DNS | Xác nhận rằng CNAME của bản ghi DNS đã trỏ đúng (nên là <UUID>.cfargotunnel.com ) |
Xác thực chứng chỉ thất bại | Đảm bảo hostname trong config.yml phù hợp với tên miền chứng chỉ, kiểm tra chuỗi chứng chỉ nội bộ có đầy đủ không |
Lợi ích của giải pháp
Thông qua giải pháp Cloudflare Tunnel, người dùng ServBay nhận được:
- Bảo vệ an toàn cấp doanh nghiệp: có sẵn khả năng giảm thiểu DDoS và bảo vệ WAF.
- Không lộ cổng: không cần cấu hình tường lửa hoặc quy tắc NAT.
- Định tuyến thông minh: tối ưu tốc độ truy cập qua mạng Anycast toàn cầu của Cloudflare.
- Khối lượng miễn phí: gói miễn phí bao gồm 50 đường hầm hoạt động mỗi tháng.
Khuyến nghị môi trường sản xuất áp dụng chính sách Access để thực hiện kiểm soát truy cập chi tiết, đảm bảo tính an toàn của dịch vụ.