frp中文文檔:https://github.com/fatedier/frp/blob/master/README_zh.md
frp的作用
通俗點來講就是有個內(nèi)網(wǎng)環(huán)境的主機,外網(wǎng)沒辦法訪問,利用可以訪問內(nèi)網(wǎng)環(huán)境的公網(wǎng)機器來進行間接訪問
場景(具體看文檔):
- 想在家直接通過ssh訪問處于公司內(nèi)網(wǎng)環(huán)境內(nèi)的主機
- 通過自定義域名訪問部署于內(nèi)網(wǎng)的 web 服務
- 轉(zhuǎn)發(fā) DNS 查詢請求
本文的場景是想讓同事直接使用ssh訪問我的虛擬機
安裝frp
-
下載地址:https://github.com/fatedier/frp/releases
由于我的內(nèi)網(wǎng)機器是linux,外網(wǎng)機器是windows,所以選擇這兩個(386就是32位的)
在windows任意目錄下解壓frp_0.33.0_windows_amd64.zip
-
進入到目錄中,frpc是客戶端的,安裝在內(nèi)網(wǎng)服務器,frps是服務端的,安裝在外網(wǎng)服務器(所以frpc的文件在服務端中可以刪掉)
-
服務端配置(公網(wǎng)服務器)
打開frps.ini文件,這里使用了最簡化的配置,設置了frp服務器端接收客戶端流量的端口(其實就是與客戶端通訊的端口,默認7000,我這里改成6767)
image.png
- 客戶端配置(內(nèi)網(wǎng)服務器)
#上傳
rz
#解壓
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
#重命名
mv frp_0.33.0_linux_amd64 frp
之后進入到frp文件目錄,同理可以刪除frps開頭的文件,保留frpc的。

打開frpc.ini進行編輯

- server_addr:服務器端ip
- server_port:服務器用來與客戶端通訊的端口(這里配置要跟服務器端的bind_port保持一致)
- local_port:客戶端監(jiān)聽,也就是內(nèi)網(wǎng)暴露到外網(wǎng)的端口
- remote_port:服務器端暴露,也就是外網(wǎng)暴露的端口
最后的效果是,同事使用ssh連接xxx.xxx.xxx.93 6768(外網(wǎng)ip端口)來登錄xxx.xxx.xxx.129 22(外網(wǎng)ip端口)
啟動服務
- 啟動服務端(frps)
進入到frp_0.33.0_windows_amd64目錄中,執(zhí)行
.\frps.exe -c .\frps.ini

- 啟動客戶端(frpc)
進入到frp目錄中,執(zhí)行
./frpc -c ./frpc.ini

測試


