frp 是一個專注于內網穿透的高性能的反向代理應用,通過在具有公網 IP 的節點上部署 frp 服務端,可以將內網服務以安全便捷的方式穿透到公網,支持 TCP、UDP、HTTP、HTTPS 等多種協議,且支持 P2P 通信。
frp 功能特性
客戶端服務端通信支持 TCP、QUIC、KCP 以及 Websocket 等多種協議
采用TCP連接流式復用,在單個連接間承載更多請求,節省連接建立時間,降低請求延遲
代理組間的負載均衡
端口復用,多個服務通過同一個服務端端口暴露
支持 P2P 通信,流量不經過服務器中轉,充分利用帶寬資源
多個原生支持的客戶端插件(靜態文件查看,HTTPS/HTTP 協議轉換,HTTP、SOCK5 代理等),便于獨立使用 frp 客戶端完成某些工作
高度擴展性的服務端插件系統,易于結合自身需求進行功能擴展
服務端和客戶端 UI 頁面
frp目前已在Github上獲取 72.4k stars,屬于github上的明星項目,目前已被很多公司廣泛用于測試、生產環境。非常受歡迎!
下載
目前可以在 Github 的 Release 頁面中下載到最新版本的客戶端和服務端二進制文件,所有文件被打包在一個壓縮包中。
下載地址(版本frp_0.52.3_windows_amd64):其他版本:
解壓縮下載的壓縮包,將其中的「 frpc 」拷貝到內網服務所在的機器上,將「frps 」拷貝到具有公網 IP 的機器上,放置在任意目錄。② 先通過 ./frps -c ./frps.ini
啟動服務端③ 再通過 ./frpc -c ./frpc.ini
啟動客戶端
如果需要在后臺長期運行,建議結合其他工具使用,例如 systemd
和 supervisor
。
如果是 Windows 用戶,需要在 cmd
終端中執行命令。以 Windows 的包「frp_0.51.3_windows_arm64.zip」為例,解壓后獲得如下文件。
「ini」是對應客戶端的配置文件;
這個示例通過簡單配置 TCP 類型的代理讓用戶訪問到內網的服務器。具體步驟如下:
在具有公網 IP 的機器上部署 frps,修改「frps.ini」文件,這里使用了最簡化的配置,設置了 frp 服務器用戶接收客戶端連接的端口:
[common]
bind_port = 7000
在需要被訪問的內網機器上(SSH 服務通常監聽在 22 端口)部署 frpc,修改 「frpc.ini 」文件,假設 frps 所在服務器的公網 IP 為 x.x.x.x:
[common]
server_addr = x.x.x.x
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
local_ip
和 local_port
配置為本地需要暴露到公網的服務地址和端口。remote_port
表示在 frp 服務端監聽的端口,訪問此端口的流量將會被轉發到本地服務對應的端口。
- 分別啟動「frps.exe」和「 frpc.exe」。
- 通過 SSH 訪問內網機器,假設用戶名為 test:
ssh -oPort=6000 test@x.x.x.x
frp 會將請求 x.x.x.x:6000
的流量轉發到內網機器的 22 端口。
更詳細教程:
FRP內網穿透轉發Windows遠程桌面端口[327]
http://21771.oa22.cn
多個 SSH 服務復用同一端口
通過自定義域名訪問內網的 Web 服務
轉發 DNS 查詢請求
轉發 Unix 域套接字
對外提供簡單的文件訪問服務
為本地 HTTP 服務啟用 HTTPS
安全地暴露內網服務
點對點內網穿透
frp 是一個專注于內網穿透的反向代理軟件,支持多種代理類型以及 P2P 通信,通過在具有公網 IP 的節點上部署 frp 服務端,可以將內網服務以安全、便捷的方式,通過具有公網 IP 節點的中轉暴露到公網,為不同場景下的需求提供豐富的解決方案。
附官網鏈接:
https://gofrp.org/docs/examples/
該文章在 2024/1/2 18:37:49 編輯過