Triển khai Cloudflare Tunnel trên Proxmox
Trong phần này chúng ta sẽ thực hiện cài đặt cloudflared agent trên một CT trên Proxmox và sau đó là cấu hình hình Cloudflared Tunnel trên Cloudflare
Phần thực hiện này sẽ loại bỏ Nginx Reverse Proxy đang sử dụng. Nên hãy đảm bảo bạn có quyền truy cập khác ngoài sử dụng domain name.
Ok. Let's go!
Chuẩn bị
Tắt NPM và đóng cổng
Để đảm bảo chắc chắn các setup tiếp theo hoạt động đúng và tránh trường hợp setup sai nhưng vẫn truy cập được thông qua NPM mình khuyến cáo nên thực hiện 2 việc sau:
- Đóng các port 80, 443 đã mở trên router
- Tắt CT NPM hoặc disable các domain trên NPM
Trong lúc thực hiện nên disable các domain trên NPM trước để có thể cứu được nếu gặp lỗi. Sau khi setup tất cả thành công thì đóng cổng và xóa NPM sau.
Tải CT Templates
Truy cập PVE web > Storage local > CT Templates > Templates > Tải debian-12-standard (version 12.12-1) > Download
Tạo CT
Trong phần tạo CT này chỉ nhắc đến những mục quan trọng cần lưu ý. Những mục khác có thể để default.
- General
- Unprivileged container: Nên tích chọn (nếu chưa tick)
- Nhớ điền password mới next được,
- Template
- Chọn template vừa tải
- Disks
- 2 - 4GiB
- CPU
- 1 core
- Memory
- Memory (MiB): 512
- Swap (MiB): 512
- Network
- IPv4 Static
- IPv4/CIDR: 192.168.1.xxx/24
- Gateway (IPv4): 192.168.1.1
- DNS
- 8.8.8.8
- Confirm > Finish
Cấu hình CT
Chọn CT đã tạo và Start nó.
Tại màn hình console hãy đăng nhập với account root và password đã tạo ở bước trên.
Cập nhật hệ thống và cài curl (cần để tải cloudflared)
apt update && apt upgrade -yapt install curl -y
CT này cần chạy thì mới có thể tạo ra tunnel. Vậy nên chắc chắn bạn sẽ muốn nó được khởi động cùng với proxmox. Hãy truy cập Options > Start at boot > Enable
Tạo và kết nối Tunnel
Trên Cloudflare
Để cài đặt Tunnel chúng ta sẽ cần làm việc với Zero Trust. Nên hãy truy cập https://one.dash.cloudflare.com/
Zero Trust > Networks > Connectors > Create a tunnel > Select Cloudflared
Điền tên của tunnel > Next
Tiếp theo, chọn hệ điều hành mà chúng ta đang cài tunnel. Ở đây đang cài trên template Debian nên chọn Debian (64-bit). Trên cửa sổ này Cloudflare sẽ cho chúng ta lệnh cài đặt trên Debian.
Trên Proxmox
Trở về máy chủ PVE, tại console của CT đã cài đặt và chạy lần lượt từng lệnh trên. (Nếu đã đăng nhập với account root thì bỏ sudo trong lệnh)
Sau khi chạy xong sẽ thấy trong cửa sổ Cloudflare xuất hiện Connectors như hình là OK.
Cấu hình Routing
Phần này chúng ta sẽ cấu hình để domain name trỏ về đúng địa chỉ IP local của từng dịch vụ.
Quay lại với Cloudflare, chọn Tunnel mà chúng ta đã tạo ở phần trên và chọn Edit nó.
Đi tới Published application routes và thực hiện thêm mới.
Thông tin cơ bản có thể điền như trên. Có vài trường hợp chúng ta cần lưu ý như sau:
Kết nối HTTP
Với đa phần các dịch vụ chúng ta sẽ sử dụng kết nối HTTP này. Phần mã hoá đã được tunnel lo.
Thông tin, chỉ cần điền như trên và Save lại là xong.
Chú ýý, phần Service Type chọn là HTTP.HTTP.
Lưu ý với Synology/XPEnology
Khi truy cập tới dsm có thể sẽ gặp lỗi "Too many redirects".
Nếu gặp lỗi này hãy, tới DSM > Control Panel > Login Portal > DSM > Tắt "Automatically redirect HTTP connections to HTTPS for DSM desktop"
Kết nối HTTPS
Một số trang như Proxmox VE sẽ yêu cầu bắt buộc sử dụng HTTPS với Self-signed certificate. Với kết nối loại này sẽ mặc định bị Cloudflare từ chối. Vậy nên chúng ta cần config để bỏ qua bước này.
Lần này với Service Type hãy chọn là HTTPS, trong Additional application settings > TSL > Bật No TLS Verify > Save.
Ok, như vậy là xong rồi. Hãy đảm bảo là đã đóng cổng trên router và disable thư domain trong NPM trước khi test thử với địa chỉ vừa config. Nếu truy cập thành công là có thể xoá NPM rồi đấy :D







