飛凌干貨丨如何通過FRP反向代理訪問內網機器
一、實際使用場景:
針對實際使用中,遇到如下場景,想讓其他人測試在本地搭建的WEB服務,由于本地機器沒有公網IP,無法域名解析到本地機器。可通過反向代理的方式,實現此功能。
本文將以FRP反向代理訪問處于內網環境中的iMX6UL系列OKMX6UL-C開發板作為說明。
二、F RP 簡介
FRP是一個可用于內網穿透的高性能的反向代理應用,支持TCP,UDP協議,為HTTP和HTTPS應用協議提供了額外的能力,且嘗試性支持了點對點穿透。
三、FRP 的作用
利用處于內網或防火墻后的機器,對外網環境提供 HTTP 和 HTTPS 服務。
對于HTTP服務支持基于域名的虛擬主機,支持自定義域名綁定,使多個域名可以共用一個80端口。
利用處于內網或防火墻后的機器,對外網環境提供 TCP服務,例如可在家中通過 SSH 訪問處于公司內網環境內的主機。
可查看通過代理的所有 HTTP 請求和響應的詳細信息。(待開發)
四、具體操作:
根據對應的操作系統及架構,從FRP的 Release 頁面下載最新版本的程序。
以本文為例,采用飛凌嵌入式的iMX6UL系列OKMX6UL-C開發板,
下載frp_0.27.0_linux_arm.tar.gz。
將壓縮包中的 frps 及 frps.ini 放到具有公網 IP 的機器上。
將壓縮包中的 frpc 及 frpc.ini 放到處于內網環境的機器飛凌iMX6UL系列OKMX6UL-C開發板上。
修改配置文件
公網IP的機器上:
修改 frps.ini 文件,這里使用了最簡化的配置:
# frps.ini
[common]
bind_port = 7000
啟動 frps:
./frps -c ./frps.ini
內網環境的機器 FCU1101上:
修改 frpc.ini 文件,假設 frps 所在服務器的公網 IP 為 x.x.x.x;
# frpc.ini
[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
啟動 frpc:
./frpc -c ./frpc.ini
通過 ssh 訪問內網機器飛凌 iMX6UL系列OKMX6UL-C開發板
假設用戶名為 test:
ssh -oPort=6000 test@x.x.x.x
本文簡單介紹了如何通過FRP 服務訪問內網機器,其他復雜的應用,請結合自己實際使用,修改。當然,也可以選擇其他的反向代理,如Ngrok,也有類似編譯好的可執行文件。