docker+frp 打通开发内网环境到公网进行测试 o( ̄▽ ̄)d

docker+frp 打通开发内网环境到公网进行测试 o( ̄▽ ̄)d

1.docker 部署流程:

参考华为云:手动部署docker

2.docker安装好之后进行frp的服务器端frps部署:

镜像的话可以使用下面这个博主的镜像:

基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)_frp docker-CSDN博客

或者去官网下载文件后自己做个docker镜像:

官网链接:frp官网

3.frps.toml配置文件

不要问为什么不用.ini文件,因为官网说最新最好使用toml/yaml...,虽然ini可能还可以跑,但是后续版本是不支持的了

可以在服务器上自定义的位置创建frps工作目录,我的话就选择srv 这个文件夹下进行创建

bash 复制代码
#创建目录
mkdir /srv/frps
#创建配置文件
touch frps.toml

我的简单配置内容如下,更为复杂、功能更强的配置就只要大家慢慢去官网琢磨啦:

bash 复制代码
#<xxxx>部分替换为你的配置
#eg:serverAddr = "<你的frps主机公网ip>" ==> serverAddr = "0.0.0.0"
bindPort = 7000
#如果是穿透内网web的http/https服务要补充
#这是http
#vhostHTTPPort = <可以自定义端口> 
#这是https
#vhostHTTPSPort = <可以自定义端口> 

auth.method = "token"
auth.token = "<你的自定义token>"
# 服务端控制面板 0.0.0.0默认为服务器公网ip
webServer.addr = "0.0.0.0"
# 访问控制面板的端口号,当然可以自定义哦
webServer.port = 7500
# 密码
webServer.user = "admin"
webServer.password = "123456"

注意:使用了端口,记得云服务器的话配置安全组规则或者防火墙指令配置打开对应端口,这个就大家自己去搜索了

4.执行docker中frps服务

bash 复制代码
docker run --name frps \
 --restart always \
 --network host -e TZ=Asia/shanghai -v /srv/frps:/etc/frps -d fatedier/frps:v0.61.2 -c /etc/frps/frps.toml

运行后可以使用docker ps 查看是否运行成功,也可使用ss -tulnp 或者netstat -tulnp 去查看对应的端口是否启用:

运行失败就docker logs frps去查看问题吧

然后可以使用公网ip:7500(用文件中配置的端口)去访问fprs的控制面板了

5.内网设备frpc 配置:

这个地方使用docker进行frpc启动的流程和frps服务器端差不多,也可以根据之前的链接去找博主的frpc镜像,重点其实还是配置文件,客官请看下面流程:

由于我是为了做H5开发所以需要内网穿透的设备是windows11 为此先去官网下载对应的压缩包,随便在哪个位置解压,得到以下内容:

编辑frpc客户端的配置文件frpc.toml ,牢弟们记得按需配置:

bash 复制代码
#<xxxx>部分替换为你的配置
#eg:serverAddr = "<你的frps主机公网ip>" ==> serverAddr = "0.0.0.0"
serverAddr = "<你的frps主机公网ip>"
serverPort = 7000
auth.method = "token"
auth.token = "<frps的token>"

#官方给的模版,但是我不用ssh所以注释掉了
#[ssh]
#name = "test-tcp"
#type = "tcp"
#localIP = "127.0.0.1"
#localPort = 22
#remotePort = 6000

#proxies是一个数组,用于定义多个代理配置。
[[proxies]]
name = "<你的自定义标识,必须唯一>"
#因为是web网页所以用http
type = "http"
localIP = "127.0.0.1"
#这个是你内网本地服务运行的端口,按照需求来
localPort = 5173
#http服务还是需要域名的
customDomains = ["<你的域名>"]

配置好了之后,windows的话执行下面指令就能跑啦,如果没问题的话,有问题控制台会报错,然后对应去官网教程找问题就行啦:

bash 复制代码
cd <frpc解压路径>
#运行指令
frpc.exe -c frpc.toml

然后尝试访问成功了。

上述frp中个配置文件中参数可以参考官网:通过自定义域名访问内网的 Web 服务 | frp

或者这篇文章:使用FRP搭建内网穿透web服务_frp web-CSDN博客

附一些文章中用到的linux和windows指令:

bash 复制代码
#linux
vi /<frps.toml文件路径> #进入编辑配置文件 进入后按a编辑,esc退出编辑状态后输入:wq保存并退出 :q直接退出 
cat /<frps.toml文件路径> #查看配置文件
docker pull <镜像>
docker image ls #查看镜像 加-a 查看所有镜像
docker container ls #查看运行容器 加-a 查看所有容器(报错没运行的)
docker run <...你的运行配置>
docker ps #查看运行的容器
docker restart <容器id或者容器名> #重启容器

#windows11
frpc verify -c frpc.toml #检查配置文件是否有问题
frpc.exe -c frpc.toml #运行frpc

文章到此结束,因为是个前端小白,写的有不好的地方或者有描述不清楚的地方请见谅,也欢迎大家在评论提出我的问题。

同时感谢引用的几篇文章大佬的详细指导。

最后还是说:书山有路勤为径,学海无涯苦作舟。

相关推荐
小Tomkk10 分钟前
jenkins 远程执行 定时 执行shell
运维·servlet·jenkins
Hello.Reader38 分钟前
NGINX 的 ngx_http_auth_jwt_module模块
运维·nginx·http
ephemerals__42 分钟前
【Linux】进程控制
linux·运维·服务器
程序猿不脱发21 小时前
什么是负载均衡?NGINX是如何实现负载均衡的?
运维·nginx·负载均衡
一匹电信狗1 小时前
【Linux我做主】进度条小程序深度解析
linux·运维·服务器·c++·ubuntu·小程序·unix
李q华2 小时前
关于浏览器页面自动化操作
运维·自动化
一只码代码的章鱼3 小时前
linux-文件操作
linux·运维·服务器
吴声子夜歌4 小时前
Linux运维——Vim技巧二
linux·运维·vim
羑悻的小杀马特6 小时前
【Linux篇章】Linux 进程信号1:解锁系统高效运作的 “隐藏指令”,开启性能飞跃新征程(精讲信号产生和保存)
linux·运维·服务器·学习·操作系统·进程信号
程序员JerrySUN13 小时前
驱动开发硬核特训 · Day 24(下篇):深入理解 Linux 内核时钟子系统结构
linux·运维·驱动开发