項目調試經常會出現需要使用外網訪問局域網本地的項目內容,在本地局域網沒有公網IP的情況下,使用開源項目frp是個不錯的選擇,frp支持linux和windows
需求:需要一臺公網IP地址的服務器
實例圖解:用戶1通過frp映射訪問局域網開發電腦的本地服務
實例環境說明:
本地windows電腦作爲用戶1,公網服務器作爲frp服務端和本地開發電腦,我這裏將客戶端也跑在了服務器上,模擬本地局域網開發電腦,原理是一樣的
frp包下載
實例服務器是centos7系統
解壓frp包:tar -zxvf frp_0.33.0_linux_amd64.tar.gz
cd frp_0.33.0_linux_amd64
frps:服務端啓動腳本
frps.ini:服務端配置文件
frpc:客戶端啓動腳本
frpc.ini:客戶端配置文件
systemd目錄:配置服務啓動的配置文件
服務端配置:vim frps.ini
[common]
bind_port = 17777 #服務端啓動端口
dashboard_port = 17555 #dashboard訪問端口
dashboard_user = admin #dashboard訪問賬號
dashboard_pwd = 123456789 #dashboard訪問密碼
token = 123456 #token認證密碼,客戶端要相同
目前 frpc 和 frps 之間支持兩種身份驗證方式,token 和 oidc,本例使用token
啓動服務端:./frps -c frps.ini >> frps.log & (手動指定打印日誌,或者使用nohup啓動,&指定後臺運行)
服務端啓動完成,可以瀏覽器訪問dashboard,服務器IP:dashboard_port(本例1.1.1.1:17555)
客戶端配置(客戶端就是本地開發電腦)
配置文件:vim frpc.ini
[common]
server_addr = 1.1.1.1 #frp服務端IP
server_port = 17777 #frp服務器端端口
token = 123456 #token認證,與服務端相同
[tcp] #自定義
type = tcp #類型,有tcp,udp,http,https,stcp等
local_ip = 127.0.0.1 #本地局域網地址
local_port = 17555 #本地服務端口
remote_port = 17666 #服務端的映射端口
啓動客戶端:./frpc -c frpc.ini >> frpc.log &(手動指定打印日誌,或者使用nohup啓動,&指定後臺運行)
啓動之後,在服務端查看,啓動了17666端口
本例使用tcp的端口映射方式,客戶端配置後,用戶即可使用1.1.1.1:17666訪問開發電腦本地的127.0.0.1:17555,因爲我本地開發使用的是服務器,因此,代理的就是frp的dashboard頁面
這樣的web網頁還可以使用http的方式代理,實現方式參考frp項目文檔,還有udp,https,stcp等
下載地址:https://github.com/fatedier/frp/releases
文檔參考:https://github.com/fatedier/frp/blob/master/README_zh.md
-----------日常記錄---------------