Hướng dẫn triển khai dịch vụ proxy ngược Pinggy trong ServBay
Pinggy là một công cụ đơn giản và dễ sử dụng cho việc xuyên tường mạng nội bộ, cho phép bạn an toàn công khai dịch vụ nội bộ của mình lên internet thông qua công nghệ proxy ngược. Hướng dẫn này sẽ chi tiết cách sử dụng Pinggy trong môi trường ServBay, giúp bạn nhanh chóng truy cập dịch vụ Web nội bộ từ internet.
Nguyên lý kỹ thuật
Pinggy thiết lập một đường hầm SSH an toàn để ánh xạ dịch vụ nội bộ của bạn nằm sau NAT/tường lửa ra internet. Trong bối cảnh ứng dụng của ServBay, điều này giúp cho các nhà phát triển dễ dàng công khai dịch vụ Web đang được gỡ lỗi nội bộ, tiện cho việc hợp tác nhóm, thử nghiệm từ xa và trình diễn.
Chuẩn bị môi trường
Không cần cài đặt bất kỳ khách hàng nào! Một trong những lợi ích lớn nhất của Pinggy là nó không yêu cầu cài đặt phần mềm nào trên máy tính cục bộ của bạn. Bạn chỉ cần một terminal hỗ trợ SSH.
Thực hành cấu hình đường hầm
Lệnh cơ bản
Thiết lập đường hầm với Pinggy rất đơn giản. Chỉ cần thực hiện lệnh sau trong terminal:
ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new "u:host:servbay.new"
Thành phần tham số | Mô tả chức năng |
---|---|
-p 443 | Chỉ định cổng SSH kết nối đến máy chủ Pinggy là 443 (cổng mặc định cho HTTPS). |
-R0:localhost:443 | Chuyển tiếp cổng từ xa. 0 có nghĩa là cho máy chủ Pinggy tự động phân bổ một cổng ngẫu nhiên. localhost:443 có nghĩa là chuyển tiếp cổng từ xa đến cổng 443 của máy cục bộ (HTTPS). |
-o StrictHostKeyChecking=no | Vô hiệu hóa kiểm tra khóa máy chủ SSH (tiện lợi khi kết nối lần đầu hoặc thử nghiệm, nhưng không khuyến khích cho môi trường sản xuất). |
-o ServerAliveInterval=30 | Gửi một tin nhắn giữ kết nối mỗi 30 giây, giữ cho kết nối SSH luôn hoạt động. |
-t [email protected] | Tên người dùng và địa chỉ máy chủ Pinggy. |
x:localServerTls:servbay.new | Tham số tùy chỉnh của Pinggy, chỉ định tên miền TLS của máy chủ cục bộ là servbay.new . |
"u:host:servbay.new" | Tham số tùy chỉnh của Pinggy, đặt tiêu đề Host của yêu cầu vào là servbay.new . |
Khi lệnh chạy thành công, bạn sẽ nhận được địa chỉ URL để truy cập
http://rnirh-172-188-50-148.a.free.pinggy.link
https://rnirh-172-188-50-148.a.free.pinggy.link
2
Xác thực dịch vụ
- Xác thực bằng
curl
(khuyến nghị): Sử dụng lệnhcurl
để kiểm tra.
curl -I https://rnirh-172-188-50-148.a.free.pinggy.link
Nội dung đầu ra như sau
HTTP/1.1 200 OK
Connection: close
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin: *
Cache-Control: max-age=0, must-revalidate, no-cache, no-store, private
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Date: Tue, 18 Feb 2025 11:51:48 GMT
Expires: Sun, 02 Jan 1990 00:00:00 GMT
Pragma: no-cache
Server: nginx
Vary: Accept-Encoding
X-Frame-Options: SAMEORIGIN
X-Powered-By: PHP/8.4.3
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Truy cập qua trình duyệt: Mở trực tiếp trình duyệt và truy cập
https://rnirh-172-188-50-148.a.free.pinggy.link
Kết quả mong đợi:
- Nội dung Web hiển thị giống như dịch vụ ServBay trên máy cục bộ.
- Nếu dịch vụ nội bộ của bạn được cấu hình HTTPS, Pinggy cũng sẽ tự động hỗ trợ HTTPS.
- Thời gian phản hồi thường nhanh (tùy thuộc vào mạng nội bộ của bạn và kết nối đến máy chủ Pinggy).
Mẹo nâng cao
Tên miền tùy chỉnh: Người dùng Pinggy Pro có thể sử dụng tên miền tùy chỉnh. Vui lòng tham khảo tài liệu Pinggy để biết thêm chi tiết.
Đường hầm TCP: Nếu dịch vụ của bạn không phải là HTTP/HTTPS, bạn có thể sử dụng chức năng đường hầm TCP của Pinggy:
bashssh -R <REMOTE_PORT>:localhost:<LOCAL_PORT> a.pinggy.io
1Thay thế
<REMOTE_PORT>
bằng cổng bạn muốn sử dụng trên máy chủ Pinggy.Đường hầm bền vững (sử dụng
autossh
): Nếu mạng của bạn không ổn định hoặc bạn muốn giữ đường hầm lâu dài, khuyến nghị sử dụngautossh
.autossh
sẽ tự động kết nối lại sau khi SSH bị ngắt.
Khắc phục sự cố
Hiện tượng | Giải pháp |
---|---|
Kết nối bị quá thời gian | Kiểm tra xem dịch vụ ServBay có đang chạy không, và <LOCAL_PORT> có chính xác hay không. |
Lỗi 404 (Không tìm thấy) | Nếu sử dụng máy chủ ảo, hãy đảm bảo sử dụng lệnh curl như hướng dẫn trong “Ví dụ cấu hình” (với tiêu đề Host đúng). |
Không thể truy cập URL Pinggy | Kiểm tra kết nối mạng của bạn, đảm bảo có thể truy cập a.pinggy.io . |
Ngắt kết nối tạm thời | Điều này có thể do mạng không ổn định. Thử sử dụng autossh để thiết lập kết nối ổn định hơn (xem phần “Mẹo nâng cao”). |
Tóm tắt giải pháp
Thông qua Pinggy, các nhà phát triển có thể thiết lập nhanh chóng và dễ dàng một đường hầm truy cập an toàn ra internet trong môi trường ServBay. Giải pháp này có các lợi ích như sau:
- Không cần cài đặt khách hàng: Đơn giản hóa quy trình cấu hình, giảm phụ thuộc.
- Hoạt động với một lệnh: Chỉ cần một lệnh SSH để khởi động đường hầm.
- Hỗ trợ HTTPS tự động: Không cần cấu hình chứng chỉ SSL thủ công.
- Hỗ trợ đường hầm HTTP và TCP: Đáp ứng nhu cầu của nhiều loại dịch vụ khác nhau.
- Lệnh không cần token: Có thể chia sẻ địa chỉ URL trực tiếp mà không lo bị rò rỉ token.
Pinggy cung cấp một cách dễ dàng hơn so với Ngrok, đặc biệt phù hợp cho việc thử nghiệm nhanh và chia sẻ dịch vụ nội bộ tạm thời. Đối với những tình huống cần hoạt động lâu dài hoặc tên miền tùy chỉnh, bạn có thể xem xét phiên bản Pro của Pinggy.