大部分家用寬帶沒(méi)有獨(dú)立的IPV4,沒(méi)法直接連接。FRP是一個(gè)內(nèi)網(wǎng)穿透的神器,可以通過(guò)一個(gè)有公網(wǎng)IP的服務(wù)器搭建FRP服務(wù)端,去轉(zhuǎn)發(fā)流量實(shí)現(xiàn)內(nèi)網(wǎng)穿透

下載
FRP在Github開(kāi)源:https://github.com/fatedier/frp
在releases頁(yè)面下載對(duì)應(yīng)的版本。壓縮包只是對(duì)應(yīng)平臺(tái)不通,每個(gè)包解壓都包含服務(wù)器端和客戶端。

服務(wù)器端配置
下載
服務(wù)器端我用的是centos,所以在releases頁(yè)面下載"frp_0.33.0_linux_amd64.tar.gz",如果服務(wù)器端是其他系統(tǒng),下載對(duì)應(yīng)的解壓就行。

解壓文件夾內(nèi):
"frps"、"frps_full.ini"、"frps.ini"是放在服務(wù)器端運(yùn)行的可執(zhí)行文件和配置文件。
"frpc"、"frpc_full.ini"、"frpc.ini"是放在客戶端端運(yùn)行的可執(zhí)行文件和配置文件。
修改配置文件
使用命令vi frps.ini修改frps.ini文件,然后保存退出:
[common]
bind_addr=0.0.0.0
bind_port = 7000
token=12310086
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin123
說(shuō)明:
"bind_addr"是服務(wù)器本地IP,不改。
"bind_port"是frp監(jiān)聽(tīng)端口。
"token"是驗(yàn)證token建議設(shè)置上。
"dashboard_port"是frp面板端口。
"dashboard_user""dashboard_pwd"是面板的賬戶密碼。
除了"bind_addr"參數(shù)之外的其他參數(shù),都可以根據(jù)需求自行修改,務(wù)必記住改過(guò)的參數(shù)。
然后給服務(wù)器端frps賦予執(zhí)行權(quán)限:
sudo chmod 755 ./frps
運(yùn)行frps
./frps -c ./frps.ini

可以配合nohup或者screen在讓frps后臺(tái)運(yùn)行。注意防火墻或者寶塔之類放行響應(yīng)的端口。登錄網(wǎng)頁(yè)查看一下是否確實(shí)成功運(yùn)行
訪問(wèn)面板
面板僅供參考,可用可不用。訪問(wèn) http://服務(wù)器ip:7500
上面配置的7500端口,使用上面配置的用戶名和密碼 admin/admin123
登陸可以看到如下界面:

客戶端配置
下載frp
演示的客戶端為windows,下載frp windows版"frp_0.33.0_windows_amd64.zip",解壓進(jìn)入文件夾:

修改配置文件
本地演示用到程序是windows遠(yuǎn)程桌面,使用3389端口。需要用frp將windows客戶端的3389轉(zhuǎn)發(fā)到服務(wù)器端上。比如將客戶端的3389轉(zhuǎn)發(fā)到服務(wù)器端的33389端口。用文本編輯器打開(kāi)"frpc.ini"文件:
[common]
server_addr = FRP服務(wù)端VPSip
server_port = 7000
token=12310086
[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 33389
保存退出,在cmd里執(zhí)行
frpc.exe -c frpc.ini
出現(xiàn)success就是連接成功

此時(shí)服務(wù)器段也有連接提醒

控制面板里也有提示

如果沒(méi)有提示,請(qǐng)注意在服務(wù)器防火墻或者寶塔之類的管理面板里放行響應(yīng)的端口!
現(xiàn)在我們?cè)谕饩W(wǎng)任意一臺(tái)電腦,打開(kāi)windows遠(yuǎn)程桌面程序,輸入服務(wù)器ip:33389,就可以連接到本地windows了

注意一定要開(kāi)啟windows電腦的“允許遠(yuǎn)程連接”,否則有可能失敗。

原理
服務(wù)器端啟動(dòng)根據(jù)配置文件監(jiān)聽(tīng)7000端口。客戶端根據(jù)配置文件啟動(dòng)和服務(wù)器的frp 7000端口進(jìn)行連接。
兩者連接成功之后,客戶端讀取本地配置文件告訴服務(wù)器端,需要哪些轉(zhuǎn)發(fā)操作用到什么端口。
上述操作中,客戶端讀取本地配置文件告訴服務(wù)器端,客戶端轉(zhuǎn)發(fā)本地的3389端口到了服務(wù)器端的33389。
然后服務(wù)器端再新開(kāi)33389的監(jiān)聽(tīng)端口,把來(lái)自外網(wǎng)訪問(wèn)33389端口的流量轉(zhuǎn)發(fā)到客戶端3389