Docker搭建FRP内网穿透服务(花生壳、Ngrok平替)
内网穿透, 让局域网的服务在异地互联网状态依旧在线可用
frp,一个高性能的反向代理, 可以通过互联网(外网)访问内网(本地局域网)设备
灵活,TCP/IP底层逻辑应用广泛
2024.01 更新内容:如何家宽模式下使用(frp p2p模式 )
使用感受:P2P模式对于这种家宽自建的frp服务太实用
有什么用
映射出局域网,‘打洞‘,平替花生壳之类的功能
举例:远程scrcpy连接安卓设备的adb操作屏幕,说人话:远程控制机顶盒或电视等
1 2 3 4 5 |
|
[概念]什么是FRP 内网穿透服务
https://github.com/fatedier/frp/blob/master/README_zh.md
1 | 为什么使用 frp ? |
实现方法
先自建一个frps服务器端(运行frps用的)<br/>然后自控端A,被控端B;内网穿透服务器<br/>https://zsxwz.com/2023/10/09/远程投屏控制安卓手机,不用-usb-不用-wifi-不用root/<br/>https://zsxwz.com/2023/10/03/frp-使用-p2p-模式,点对点穿透,节约服务器带宽/<br/>开启手机adb,然后用scrcpy
[done]TODO 自建docker的frps服务<br/>https://github.com/fatedier/frp<br/>方案就是开放特定的内网服务到外网直接访问(域名+端口),这个特定的内网服务是有控制功能的,比如路由的web页面,可ssh的端口,可以远程桌面的mstc等。<br/>这样打洞以后,在洞上面架设的是可以远程操作协助的APP(比如远程桌面,ssh等)<br/>从而实现远程协助的功能。
感觉frps,frpc才是王道,但愿受控端的操作会少一些,简单一下,步骤简易一些,通俗易懂一些。
docker-compose.yml
1 | version: '3.3' |
FRP服务器配置文件 frps.ini
1 |
|
7000映射到外网了,在主路由上已配置。<br/>测试frpc 来链接。。。。
2023/12/01 08:35:34 [1;34m[I] [service.go:312] Dashboard listen on 0.0.0.0:9527[0m<br/>无法正常连接, 原来是 配置文件dashboard_port= 7500,然后docker映射出来9527即可。
docker重启日志中:<br/>2023/12/01 08:57:30 [1;34m[I] [service.go:533] [67b3d0c8dd4be924] client login info: ip [120.244.216.197:37895] version [0.52.3] hostname [] os [linux] arch mipsle type [http] error: subdomain is not supported because this feature is not enabled in server<br/>https://github.com/fatedier/frp
FRPS 服务端如何反代?
修改了上面的配置:
network_mode: host
开启防火墙6002
太赞了,https://@@@@.carlzeng.top:@@@@/Advanced_Extensions_script.asp
比Zerotier强太多了!!!
K2P UI中的文本框编辑在Zerotier中无法使用,在frpc后反代以后都正常了!
https://@@@@.carlzeng.top:@@@@/ 反代到debian的6002端口,协议选择http
客户端frpc配置
frpc可以运行与各个平台,比如:Windows电脑、苹果电脑、Linux、Unix等系统的电脑,安卓手机端,苹果手机端等等…
设置应用2
FRP客户端配置文件 frpc.ini
1 |
|
设置到K2P里面去
[done]TODO:
开启debian防火墙的6003-6004,
NPM反代6003
设置应用3
去应用的docker中(比如独角数卡)加入frpc,然后反代出来
wget https://mirror.ghproxy.com/https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
tar -xf frp_0.52.3_linux_amd64.tar.gz -C /usr/local/bin
1 | ./frpc -c frpc.ini |
客户端 frpc.ini
1 |
|
发现仍然无法解决,页面的操作携带端口的需求
设置应用4
远程控制adb,安卓设备远程控制
在路由器上,给192.168.123.189这个设备的5555端口映射出来
1 | .... |
<hr/>
如何家宽模式下使用(frp p2p模式 )
使用frp的p2p模式,点对点穿透,绝大多数数据无需经过服务端,加速了穿透访问
第三方接入FRP服务器,映射出特定的端口到本地:
服务器frps的配置,和上面一样无需做任何修改,只要是配置被控端和主控端的两个frpc配置文件:
2、被控端B配置文件 frpc.ini
1 |
|
3、主控端A 配置文件 frpc.ini
1 |
|
免费的FRP服务资源
如果暂时没有自建的条件,可以直接使用网络上开放免费的FRP服务,比如:
优点:所见即所得,马上就用
缺点:速度慢,适合用来学习测试
设置和应用太灵活了,以至于很难理解和变通到家宽部署的情况。
关键词:docker frps 反向代理
灵感来源/感谢列表
家里没有公网IP?FRP+NPM+VPS = 随时随地用域名访问家里的任何设备!内网穿透,从未如此简单!
使用docker-compose来构筑NGINX、frp的HTTP内网穿透
<br/>
<br/>