Hướng Dẫn Cấu Hình Dịch Vụ Reverse Proxy frp Trong ServBay
frp (Fast Reverse Proxy) là một ứng dụng reverse proxy hiệu suất cao, cho phép bạn xuất bản các dịch vụ mạng nội bộ một cách an toàn ra ngoài Internet. ServBay đã tích hợp chức năng client frp (frpc), giúp bạn kết nối đến máy chủ frp (frps) tự triển khai, từ đó truy cập các website nội bộ được lưu trữ trên ServBay thông qua tên miền tùy chỉnh. Phương pháp này trao cho bạn quyền kiểm soát hoàn toàn với máy chủ tunnel.
Hướng dẫn này sẽ hướng dẫn chi tiết cách cấu hình client frp trong ServBay và kết nối đến máy chủ frps của bạn.
Tổng Quan
Khác với các dịch vụ tunnel quản lý khác trong ServBay, sử dụng frp yêu cầu bạn phải tự triển khai và cấu hình máy chủ frps trên máy chủ của riêng mình trước. ServBay đóng vai trò là frpc client, có nhiệm vụ chuyển lưu lượng web nội bộ qua máy chủ frps ra Internet. Mô hình này lý tưởng cho các developer muốn tùy biến sâu và kiểm soát toàn bộ tunnel.
Ứng Dụng Thực Tiễn
- Toàn quyền kiểm soát máy chủ tunnel: Bạn có thể kiểm soát hoàn toàn cấu hình, bảo mật và hiệu năng của máy chủ frps.
- Sử dụng tên miền tùy chỉnh và SSL: Linh hoạt cấu hình bất kỳ tên miền nào bạn sở hữu cho dự án nội bộ và tích hợp với chứng chỉ ACME SSL do ServBay quản lý.
- Cấu hình mạng nâng cao: frp hỗ trợ nhiều loại proxy và tùy chỉnh nâng cao, đáp ứng nhu cầu phức tạp.
- Triển khai riêng tư: Phù hợp với các kịch bản không muốn phụ thuộc vào dịch vụ tunnel của bên thứ ba.
Điều Kiện Tiên Quyết
- Đã cài đặt ServBay: Đảm bảo bạn đã cài và chạy thành công ServBay trên macOS.
- Máy chủ
frps
tự quản lý:- Bạn phải có một máy chủ có thể truy cập từ Internet, đã cài đặt và vận hành frps thành công.
- Ghi lại địa chỉ IP công cộng hoặc tên miền của máy chủ frps.
- Ghi lại cấu hình trong file cấu hình server (
frps.toml
hoặcfrps.ini
) vớibindPort
(cổng giao tiếp giữa frpc và frps) vàtoken
(chuỗi xác thực).
- Cấu hình tên miền và DNS:
- Bạn cần có một domain công khai (ví dụ:
your-frp-server.com
), trỏ bản ghi DNS A về IP công cộng của máy chủ frps. Tên miền này sẽ được sử dụng để truy cập website nội bộ từ bên ngoài.
- Bạn cần có một domain công khai (ví dụ:
- Chứng chỉ ACME SSL trên ServBay:
- Để có thể truy cập tên miền ngoài bằng HTTPS, bạn cần đăng ký chứng chỉ ACME SSL thông qua chức năng SSL Certificates trên ServBay cho tên miền ngoài này. Ví dụ, nếu bạn định sử dụng
project.your-frp-server.com
để truy cập website nội bộ, thì bạn phải có chứng chỉ choproject.your-frp-server.com
.
- Để có thể truy cập tên miền ngoài bằng HTTPS, bạn cần đăng ký chứng chỉ ACME SSL thông qua chức năng SSL Certificates trên ServBay cho tên miền ngoài này. Ví dụ, nếu bạn định sử dụng
- Nhiều subdomain & chứng chỉ SSL:
- Nếu bạn cần dùng nhiều subdomain mà không muốn tạo nhiều bản ghi A, bạn có thể dùng wildcard
*
: thêm một bản ghi A kiểu*.your-frp-server.com
trỏ tới IP công cộng của server frps. Đồng thời, đăng ký chứng chỉ ACME wildcard cho tên miền này trên ServBay (trong trường hợp đăng ký, nhậpyour-frp-server.com, *.your-frp-server.com
vào trường Domain, đảm bảo dấu*
ở cuối, cách nhau bởi dấu phẩy). Sau đó, bạn có thể dễ dàng thêm bất kỳ subdomain nào trên ServBay mà không cần thêm bản ghi A mới, đồng thời chia sẻ cùng một chứng chỉ SSL. - Với cách này, bạn có thể cấu hình các domain như
company-project.your-frp-server.com
,personal.your-frp-server.com
,customer-1.your-frp-server.com
để truy cập từ ngoài mà không tốn công cài đặt lặp lại.
- Nếu bạn cần dùng nhiều subdomain mà không muốn tạo nhiều bản ghi A, bạn có thể dùng wildcard
Các Bước Thực Hiện
1. Cài Đặt Gói Phần Mềm frp Trong ServBay
- Mở ứng dụng ServBay.
- Trên thanh điều hướng bên trái, chọn Phần mềm (Packages).
- Tìm kiếm và chọn
frp
trong danh sách phần mềm. - Nhấn nút cài đặt cạnh
frp
. - Sau khi cài đặt xong, nếu bạn thử khởi động dịch vụ frp ngay bây giờ có thể sẽ thất bại do chưa cấu hình - đây là hiện tượng bình thường.
2. Chuẩn Bị Máy Chủ frps
và Cấu Hình
Bạn cần tự cài đặt và vận hành frps trên máy chủ công cộng của mình. ServBay có thể tự động sinh một mẫu file cấu hình frps.toml
(dành cho frp phiển bản mới), giúp bạn bắt đầu nhanh chóng:
Trong ServBay, điều hướng đến Tunnel -> frp.
Tìm dòng frp server config (frps.toml) rồi bấm vào biểu tượng thả xuống/mở rộng bên cạnh.
ServBay sẽ hiện một file mẫu
frps.toml
tương tự sau:toml# The frps configuration file automatically generated by ServBay # is intended for direct use on the server. # Please adjust the configuration parameters according # to your specific needs. bindPort = 12345 auth.method = "token" auth.token = "myserverpassword" vhostHTTPPort = 80 vhostHTTPSPort = 443 log.to = "/tmp/frps.log" log.level = "info" log.maxDays = 3 log.disablePrintColor = true # Đối với frps phiên bản mới (ví dụ 0.52.0+), sử dụng webServer.port, webServer.addr, webServer.user, webServer.password để cấu hình Dashboard # webServer.port = 7500 # webServer.addr = "0.0.0.0" # webServer.user = "admin" # webServer.password = "admin_password"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Giải Thích Cấu Hình Quan Trọng:
bindPort
: Cổng frpc dùng để kết nối tới frps. Đảm bảo cổng này được mở trên firewall của server. Khuyến nghị: cần có biện pháp bảo mật cho cổng này, ví dụ chỉ cho phép truy cập từ IP xác định.auth.method = "token"
vàauth.token
: Xác thực client. Hãy thay bằng chuỗi mật khẩu mạnh của riêng bạn.vhostHTTPPort = 80
vàvhostHTTPSPort = 443
: Port server frps lắng nghe các request HTTP, HTTPS.- [Quan trọng] ServBay hiện ưu tiên kịch bản frps dùng luôn port 80/443 cho
vhostHTTPPort
vàvhostHTTPSPort
. Điều này cho phép chức năng truyền trực tiếp chứng chỉ ACME SSL từ ServBay đến frps để client sử dụng. - Nếu server frps không thể dùng trực tiếp port 80/443 (ví dụ do port bị chiếm dụng), bạn bắt buộc phải dựng thêm một reverse proxy như Nginx hoặc Caddy phía trước frps. Reverse proxy này sẽ lắng nghe port công cộng 80/443, sau đó chuyển tiếp lưu lượng đến port thật của frps (
vhostHTTPPort
,vhostHTTPSPort
). Khi đó, SSL sẽ do reverse proxy đảm nhận thay vì ServBay truyền trực tiếp.
- [Quan trọng] ServBay hiện ưu tiên kịch bản frps dùng luôn port 80/443 cho
log.to
: Đường dẫn lưu file log của frps.- Cấu hình Dashboard (ví dụ
webServer.port
, ...): Truy cập giao diện Dashboard của frps - tuỳ chọn.
Copy nội dung file mẫu này lên máy chủ frps, lưu dưới dạng
frps.toml
(hoặcfrps.ini
, tuỳ phiên bản hoặc sở thích), tuỳ biến lại thông số cho phù hợp.Khởi động dịch vụ frps của bạn.
3. Cấu Hình Client frp Trong ServBay
Quay lại ứng dụng ServBay, cấu hình các thông số kết nối client frp:
Điều hướng đến Tunnel -> frp.
Điền thông tin server frps:
- Server Address (Địa chỉ server): Nhập tên miền hoặc IP public của server frps (ví dụ:
my.test.frp.server.host
). - Server Port (Cổng server): Nhập port
bindPort
như trong frps.toml (ví dụ:12345
). - Auth Token (Token xác thực): Nhập token từ cấu hình frps.toml (
myserverpassword
).
- Server Address (Địa chỉ server): Nhập tên miền hoặc IP public của server frps (ví dụ:
Thiết lập luật ánh xạ tunnel:
- Local Domain (Website nội bộ): Chọn một website ServBay nội bộ bạn muốn xuất bản (ví dụ:
servbay.demo
). - External Domain (Tên miền ngoài): Nhập tên miền mà người dùng ngoài truy cập website này (ví dụ:
test.ks.do
). Bản ghi DNS A của tên miền này phải trỏ về IP server frps.- Lưu ý: Khác với các Tunnel khác trong ServBay như
Ngrok
,Cloudflared
, bạn cần nhập đầy đủ tên miền tại đây.
- Lưu ý: Khác với các Tunnel khác trong ServBay như
- ACME Certificates (Chứng chỉ ACME): Chọn chứng chỉ ACME SSL tương ứng đã đăng ký trên ServBay với External Domain (ví dụ: chọn chứng chỉ của
test.ks.do
).- Quan trọng: Chỉ khi chọn đúng chứng chỉ, bạn mới có thể truy cập tên miền ngoài qua HTTPS. ServBay sẽ chuyển thông tin SSL này đến frpc, sau đó frps dùng chứng chỉ đó để trả lời các request HTTPS tới External Domain này. Như vậy, server frps của bạn không cần tự cấu hình chứng chỉ SSL cho từng domain—ServBay xử lý giúp bạn.
- Local Domain (Website nội bộ): Chọn một website ServBay nội bộ bạn muốn xuất bản (ví dụ:
Thêm nhiều tunnel:
- Nếu bạn muốn xuất bản nhiều website nội bộ hoặc dùng nhiều External Domain, hãy nhấn nút
+
bên cạnh mỗi tunnel để tạo thêm bản ghi mới.
- Nếu bạn muốn xuất bản nhiều website nội bộ hoặc dùng nhiều External Domain, hãy nhấn nút
4. Lưu Cấu Hình và Khởi Động Dịch Vụ frp
- Sau khi cấu hình xong, nhấn nút Save (Lưu) ở góc dưới phải.
- ServBay sẽ lưu cấu hình frpc và thử khởi động dịch vụ frp.
- Xem trạng thái đèn báo bên tên dịch vụ
frp
trong danh sách Tunnel. Nếu các thông tin đúng và client frpc kết nối thành công đến server frps, đèn báo sẽ chuyển sang màu xanh lá cây, tức là dịch vụ đang chạy. - Kiểm tra hoạt động:
- Giờ bạn có thể truy cập các website nội bộ từ Internet thông qua External Domain (ví dụ
https://test.ks.do
). - Nhấn vào biểu tượng sao chép hoặc mở trình duyệt bên cạnh External Domain để kiểm tra kết nối ngay.
- Giờ bạn có thể truy cập các website nội bộ từ Internet thông qua External Domain (ví dụ
Lưu Ý
- Triển khai & bảo trì server
frps
: Bạn hoàn toàn chịu trách nhiệm về việc cài đặt, cấu hình, bảo đảm an ninh và vận hành máy chủ frps. - Bảo mật cổng
bindPort
của frps: Luôn sử dụng chuỗi token mạnh và dùng firewall để giới hạn IP/ dải IP được phép truy cập tớibindPort
. - Lựa chọn port
vhostHTTPPort
,vhostHTTPSPort
:- Rất nên để frps lắng nghe trực tiếp port 80/443 làm các cổng vhost, như vậy mới tận dụng được chức năng truyền trực tiếp SSL từ ServBay dễ nhất.
- Nếu frps không dùng được port 80/443 làm vhost, bạn sẽ phải cấu hình thêm reverse proxy (Nginx or Caddy...) lắng nghe port 80/443 và chuyển tiếp tới port thật frps; khi đó, reverse proxy này sẽ chịu trách nhiệm SSL.
- Yếu tố bắt buộc của ACME certificate: Nếu bạn muốn truy cập domain ngoài bằng HTTPS, phải đảm bảo đã đăng ký và chọn đúng chứng chỉ ACME trong cấu hình tunnel frp trên ServBay.
- Độ lan truyền DNS: Bản ghi DNS A của External Domain cần trỏ về IP server frps và đảm bảo DNS đã lan truyền toàn cầu.
Câu Hỏi Thường Gặp (FAQ)
- Q: Dịch vụ frp trong ServBay không khởi động được, đèn báo màu đỏ hoặc cam thì xử lý thế nào?
- A: Kiểm tra lại cấu hình:
Server Address
,Server Port
,Auth Token
trong ServBay có trùng khớpbindPort
,auth.token
trong frps.toml không. Đảm bảo server frps đang chạy và có thể truy cậpbindPort
từ máy Mac của bạn (xem lại firewall). Xem log frp để tìm lỗi chi tiết.
- A: Kiểm tra lại cấu hình:
- Q: Tôi truy cập được qua External Domain nhưng chỉ HTTP chứ không phải HTTPS?
- A: Kiểm tra đã chọn đúng chứng chỉ ACME cho External Domain trong ServBay. Đồng thời kiểm tra trong frps.toml giá trị
vhostHTTPSPort
đúng (nên là 443).
- A: Kiểm tra đã chọn đúng chứng chỉ ACME cho External Domain trong ServBay. Đồng thời kiểm tra trong frps.toml giá trị
- Q: Server frps bắt buộc dùng port vhost khác 80/443, cấu hình SSL ra sao?
- A: Khi đó, bạn phải dựng reverse proxy (vd. Nginx hoặc Caddy) trên server frps, reverse proxy sẽ lắng nghe 80/443, xử lý SSL (chứng chỉ có thể do bạn tự quản lý, không bắt buộc qua ServBay), rồi chuyển tiếp traffic (có hoặc không giải mã SSL tùy config) đến port thật của frps. Trường ACME Certificates trong cấu hình frp của ServBay sẽ không còn tác dụng trực tiếp lên SSL ngoài, vì SSL do reverse proxy đảm nhiệm.
- Q: File
frps.toml
ServBay sinh khác định dạng filefrps.ini
tôi đang dùng?- A: File cấu hình frp đã chuyển dần từ
.ini
sang.toml
. ServBay cung cấp template định dạng.toml
. Nếu frps của bạn cũ hoặc muốn dùng.ini
, hãy tham khảo tài liệu frp để chuyển đổi hoặc cấu hình phù hợp. Ý nghĩa các tham số không thay đổi.
- A: File cấu hình frp đã chuyển dần từ
Tổng Kết
ServBay thông qua tích hợp client frp mang lại công cụ mạnh mẽ cho các lập trình viên macOS cần giải pháp xuyên NAT tự do và kiểm soát toàn diện. Việc tự triển khai máy chủ frps kết hợp cấu hình frpc thuận tiện cùng quản lý chứng chỉ ACME SSL trên ServBay giúp bạn xuất bản, chia sẻ website nội bộ an toàn, linh hoạt ra Internet. Hãy chú ý cấu hình đúng các thông số trên cả frps và frpc, đặc biệt về cổng và bảo mật, để đảm bảo dịch vụ luôn ổn định và an toàn.