在ServBay中部署Pinggy反向代理服務指南
Pinggy 是一款簡單易用的內網穿透工具,通過反向代理技術,可以將您的本地服務安全地暴露到公網上。本指南將詳細介紹如何在 ServBay 環境中使用 Pinggy,快速實現本地 Web 服務的互聯網訪問。
技術原理
Pinggy 通過建立安全的 SSH 隧道,將部署在 NAT/防火牆後的本地服務映射到公網。在 ServBay 應用場景中,這使得開發者能夠輕鬆地將本地調試的 Web 服務實時對外發布,方便團隊協作、遠程測試和演示。
環境準備
無需安裝任何客戶端!Pinggy 的最大優勢之一是它不需要在本地計算機上安裝任何軟件。您只需要一個支持 SSH 的終端。
隧道配置實戰
核心命令
使用 Pinggy 建立隧道非常簡單。只需在終端中執行以下命令:
ssh -p 443 -R0:localhost:443 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -t [email protected] x:localServerTls:servbay.new "u:host:servbay.new"
參數組件 | 功能說明 |
---|---|
-p 443 | 指定 SSH 連接到 Pinggy 伺服器的端口為 443(HTTPS 預設端口)。 |
-R0:localhost:443 | 遠程端口轉發。0 表示讓 Pinggy 伺服器自動分配一個隨機端口。localhost:443 表示將遠程端口轉發到本地的 443 端口(HTTPS)。 |
-o StrictHostKeyChecking=no | 禁用 SSH 主機密鑰檢查(在首次連接或測試時方便,但生產環境不推薦)。 |
-o ServerAliveInterval=30 | 每 30 秒發送一次 keep-alive 消息,保持 SSH 連接活躍。 |
-t [email protected] | Pinggy 用戶名和伺服器地址。 |
x:localServerTls:servbay.new | Pinggy 的自定義參數,指定本地伺服器的 TLS 網域名為 servbay.new 。 |
"u:host:servbay.new" | Pinggy 的自定義參數,將傳入請求的 Host 標頭設置為 servbay.new 。 |
命令運行成功後,將會輸出用於訪問的 URL 地址
http://rnirh-172-188-50-148.a.free.pinggy.link
https://rnirh-172-188-50-148.a.free.pinggy.link
2
服務驗證
- 通過
curl
驗證 (推薦): 使用curl
命令來測試。
curl -I https://rnirh-172-188-50-148.a.free.pinggy.link
輸出內容如下
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
瀏覽器訪問: 直接打開瀏覽器訪問
https://rnirh-172-188-50-148.a.free.pinggy.link
預期結果:
- 呈現與本地 ServBay 服務一致的 Web 內容。
- 如果您的本地服務配置了 HTTPS,Pinggy 也會自動支持 HTTPS。
- 響應時間通常很快(取決於您的本地網絡和到 Pinggy 伺服器的連接)。
高級技巧
自定義域名: Pinggy Pro 用戶可以使用自定義域名。詳細信息請參考 Pinggy 文檔。
TCP 隧道: 如果您的服務不是 HTTP/HTTPS,您可以使用 Pinggy 的 TCP 隧道功能:
bashssh -R <REMOTE_PORT>:localhost:<LOCAL_PORT> a.pinggy.io
1將
<REMOTE_PORT>
替換為您希望在 Pinggy 伺服器上使用的端口。持久化隧道 (使用
autossh
): 如果你的網絡不穩定,或者你想長時間開著隧道,推薦使用autossh
.autossh
會在ssh斷開後自動重連.
故障排查
現象 | 解決方案 |
---|---|
連接超時 | 檢查 ServBay 服務是否正在運行,以及 <LOCAL_PORT> 是否正確。 |
404 錯誤 (Not Found) | 如果使用虛擬主機,請確保按照“配置示例”中的說明使用了 curl 命令(帶有正確的 Host 標頭)。 |
無法訪問 Pinggy URL | 檢查您的網絡連接,確保可以訪問 a.pinggy.io 。 |
間歇性斷開 | 這可能是由於網絡不穩定。嘗試使用 autossh 來建立更穩定的連接(請參閱“高級技巧”部分)。 |
方案總結
通過 Pinggy,開發者可以在 ServBay 環境中極其簡單快捷地建立安全的公網訪問通道。該方案具有以下優勢:
- 無需安裝客戶端: 簡化了配置流程,減少了依賴。
- 一鍵式操作: 通過一條 SSH 命令即可啟動隧道。
- 自動 HTTPS 支持: 無需手動配置 SSL 證書。
- 支持 HTTP 和 TCP 隧道: 滿足各種類型的服務需求。
- Token-less命令: 可以直接分享網址, 無需擔心token洩露.
Pinggy 提供了一種比 Ngrok 更為便捷的方式,尤其適合快速測試和臨時分享本地服務。對於需要長期穩定運行或自定義域名的場景,可以考慮 Pinggy 的 Pro 版本。