大部分家用寬帶沒有獨立的IPV4,沒法直接連接。FRP是一個內網穿透的神器,可以通過一個有公網IP的服務器搭建FRP服務端,去轉發流量實現內網穿透 |
FRP在Github開源:https://github.com/fatedier/frp
在releases頁面下載對應的版本。壓縮包只是對應平台不通,每個包解壓都包含服務器端和客戶端。
服務器端我用的是centos,所以在releases頁面下載"frp_0.33.0_linux_amd64.tar.gz",如果服務器端是其他系統,下載對應的解壓就行。
解壓文件夾內:
- "frps"、"frps_full.ini"、"frps.ini"是放在服務器端運行的可執行文件和配置文件。
- "frpc"、"frpc_full.ini"、"frpc.ini"是放在客戶端端運行的可執行文件和配置文件。
使用命令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
說明:
-
- "bind_addr"是服務器本地IP,不改。
- "bind_port"是frp監聽端口。
- "token"是驗證token建議設置上。
- "dashboard_port"是frp面板端口。
- "dashboard_user""dashboard_pwd"是面板的賬戶密碼。
除了"bind_addr"參數之外的其他參數,都可以根據需求自行修改,務必記住改過的參數。
然后給服務器端frps賦予執行權限:
sudo chmod 755 ./frps
運行frps
./frps -c ./frps.ini
可以配合nohup或者screen在讓frps后台運行。注意防火牆或者寶塔之類放行響應的端口。登錄網頁查看一下是否確實成功運行
面板僅供參考,可用可不用。訪問 http://服務器ip:7500
上面配置的7500端口,使用上面配置的用戶名和密碼 admin/admin123
登陸可以看到如下界面:
演示的客戶端為windows,下載frp windows版"frp_0.33.0_windows_amd64.zip",解壓進入文件夾:
本地演示用到程序是windows遠程桌面,使用3389端口。需要用frp將windows客戶端的3389轉發到服務器端上。比如將客戶端的3389轉發到服務器端的33389端口。用文本編輯器打開"frpc.ini"文件:
[common] server_addr = FRP服務端VPSip server_port = 7000 token=12310086 [RDP] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 33389
保存退出,在cmd里執行
frpc.exe -c frpc.ini
出現success就是連接成功
此時服務器段也有連接提醒
控制面板里也有提示
如果沒有提示,請注意在服務器防火牆或者寶塔之類的管理面板里放行響應的端口!
現在我們在外網任意一台電腦,打開windows遠程桌面程序,輸入服務器ip:33389,就可以連接到本地windows了
注意一定要開啟windows電腦的“允許遠程連接”,否則有可能失敗。
- 服務器端啟動根據配置文件監聽7000端口。客戶端根據配置文件啟動和服務器的frp 7000端口進行連接。
- 兩者連接成功之后,客戶端讀取本地配置文件告訴服務器端,需要哪些轉發操作用到什么端口。
- 上述操作中,客戶端讀取本地配置文件告訴服務器端,客戶端轉發本地的3389端口到了服務器端的33389。
- 然后服務器端再新開33389的監聽端口,把來自外網訪問33389端口的流量轉發到客戶端3389