Hướng dẫn cấu hình dịch vụ FRP proxy ngược trên ServBay
FRP là một công cụ proxy ngược hiệu suất cao, thông qua kiến trúc client-server để thực hiện xuyên tường nội bộ. Hướng dẫn này sẽ hướng dẫn người dùng ServBay sử dụng client frpc để cấu hình hầm bảo mật, cho phép truy cập công cộng dịch vụ cục bộ.
Nguyên lý kỹ thuật
FRP thiết lập hầm giao tiếp mã hóa giữa server (frps) và client (frpc), ánh xạ dịch vụ nội bộ tới máy chủ công cộng. Giải pháp này hỗ trợ nhiều giao thức như TCP/UDP/HTTP/HTTPS, phù hợp cho các tình huống như gỡ lỗi từ xa, thử nghiệm API trong môi trường phát triển ServBay.
Chuẩn bị môi trường
1. Cài đặt client FRP
Triển khai client frpc theo các bước sau:
- Truy cập GitHub Release page để tải phiên bản tương ứng
- Giải nén và triển khai vào PATH hệ thống (lấy ví dụ về kiến trúc ARM của macOS):bash
tar -zxvf frp_0.61.1_darwin_arm64.tar.gz sudo cp frp_0.61.1_darwin_arm64/frpc /usr/local/bin/
1
2 - Kiểm tra cài đặt:bash
frpc -v # frpc version 0.61.1
1
2
Thực hành cấu hình hầm
Giải thích tệp cấu hình
Tạo tệp cấu hình frpc.toml
, cấu trúc cơ bản như sau:
serverAddr = your-frps-server.com
serverPort = 7000
auth.method = token
auth.token = your_authentication_token
[[proxies]]
name = "test_web"
type = "http"
localPort = 80
customDomains = servbay.your-domain.com
2
3
4
5
6
7
8
9
10
Mục cấu hình | Giải thích chức năng |
---|---|
serverAddr | Địa chỉ công cộng của server FRP |
serverPort | Cổng giao tiếp của server FRP (mặc định 7000) |
auth.method | Phương thức xác thực của server |
auth.token | Khóa xác thực của server |
type | Loại proxy (http/https/tcp...) |
localPort | Cổng dịch vụ cục bộ |
customDomains | Tên miền truy cập công cộng |
Ví dụ cấu hình điển hình
Ánh xạ dịch vụ HTTPS trên ServBay tới công cộng:
Trong ví dụ:
- Địa chỉ server frp là
frps.servbay.demo
- Tên miền đã cấu hình trên ServBay là
servbay.test
- Tên miền phục vụ dịch vụ công cộng là
test-frp.servbay.app
(tên miền phải được DNS phân giải đến server frp)
serverAddr = frps.servbay.demo
serverPort = 7000
auth.method = "token"
auth.token = servbay
[[proxies]]
name = "servbay-frpc-demo"
type = "https"
customDomains = ["test-frp.servbay.app"]
[proxies.plugin]
type = "https2https"
localAddr = "127.0.0.1:443"
crtPath = "/Applications/ServBay/ssl/private/tls-certs/servbay.test/servbay.test.crt"
keyPath = "/Applications/ServBay/ssl/private/tls-certs/servbay.test/servbay.test.key"
hostHeaderRewrite = "servbay.test"
requestHeaders.set.x-from-where = "frp"
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Khởi động dịch vụ:
frpc -c frpc.toml
Xác thực dịch vụ
- Truy cập tên miền ánh xạ qua trình duyệt:
https://test-frp.servbay.app
1 - Kiểm tra các chỉ số xác thực:
- Trả về mã trạng thái HTTP 200
- Nội dung phản hồi nhất quán với dịch vụ cục bộ
- Xác thực tính hợp lệ của chứng chỉ SSL
Chẩn đoán nhật ký
frpc -c frpc.toml --log_level debug # Mở nhật ký gỡ lỗi
tail -f /var/log/frpc.log # Giám sát nhật ký theo thời gian thực
2
Hướng dẫn khắc phục sự cố
Hiện tượng | Giải pháp |
---|---|
Kết nối xác thực không thành công | Kiểm tra cấu hình auth.token có khớp với server không |
Lỗi phân giải tên miền | Đảm bảo DNS đã phân giải đúng đến IP của server FRP |
Xung đột cổng | Sử dụng lsof -i :PORT để kiểm tra việc chiếm cổng |
Hầm thường xuyên ngắt kết nối | Điều chỉnh tham số nhịp tim: heartbeat_timeout = 30 |
Lợi ích của giải pháp
Giải pháp FRP cung cấp cho người dùng ServBay những giá trị cốt lõi sau:
- Hỗ trợ nhiều giao thức để đáp ứng các tình huống kinh doanh phức tạp
- Cập nhật cấu hình nóng mà không cần khởi động lại dịch vụ
- Hỗ trợ proxy cấp nguyên bản cho nhiều lớp xuyên tường nội bộ
- Kiến trúc mã nguồn mở bảo đảm an ninh và kiểm soát dữ liệu
Khuyến nghị bật mã hóa giao tiếp TLS khi triển khai trong môi trường sản xuất, và cấu hình tls_enable = true
để yêu cầu truyền tải mã hóa.