话说有一天,希望将软件安装包放到网上,希望类似如下效果,正好在调试frp docker版,看到frp有个【对外提供简单的文件访问服务】功能,网上搜索也没相关效果图,所以顺手测试一下,截了几张图,就有了这篇文章。
先说结论:
- frp的文件访问服务,有点意思,可以将本地电脑的某个文件夹,作为简单文件下载服务,也可以当作简单的Web服务,放html、css、js、png等前端资源文件。
- 还可以跟APISQL结合使用,更有意思,将本地数据库(或局域网的数据库)转为公网可以访问的API。
- frp放前端 + apisql调后端,前后端都在本地电脑,不用重复上传代码到服务器,并且都是互联网实时访问,那是一种很神奇的体验。
- 还有一点感悟,调试时,没事不要整frp docker版,有点绕,frp已经很绿色了,再加docker有点画蛇添足。除非自己知道自己在干什么,例如为了简化一推微服务,在docker compose中使用frp docker版。
测试记录如下:
一、frps服务器端:
服务器端docker-compose.yml配置文件
[root@vm frps]# cat docker-compose.yml
version: '3.9'
services:frps:image: fatedier/frps:v0.61.0hostname: frpscontainer_name: frpsvolumes:- "./frps.toml:/frps.toml"command:- "-c"- "/frps.toml"network_mode: "host"
[root@vm frps]#
服务器端frps.toml配置文件
[root@vm ~]# cat frps.toml
bindPort = 5000
auth.token = "Password"
[root@vm ~]#
重启并查看日志
docker compose up -d && docker logs frps
二、客户端如下
客户器端docker-compose.yml配置文件
root@armbian:~# cat docker-compose.yml
version: '3.9'
services:frpc:image: fatedier/frpc:v0.61.0hostname: frpccontainer_name: frpcvolumes:- "./frpc.toml:/frpc.toml"command:- "-c"- "/frpc.toml"network_mode: "host"
客户端frpc.toml配置文件
root@armbian:~# cat frpc.toml
serverAddr = "182.xx.xx.xx"
serverPort = 5000
auth.token = "Password"[[proxies]]
name = "test_static_file1459"
type = "tcp"
remotePort = 8000
[proxies.plugin]
type = "static_file"
localPath = "/tmp"
httpUser = "abc"
httpPassword = "abc"
root@armbian:~#
经常修改配置文件,停止、重动、查看日志一条命令方便些
docker compose down && docker compose up -d && docker logs frpc
用户名abc、密码abc登陆效果
这是以开始客户端配置为【./】时,看到了容器的根目录
type = "static_file"
localPath = "./"
进入了容器etc目录,看到有目录,也有文件
文件还可以直接被查看
后面将客户端配置改为
type = "static_file"
localPath = "/tmp"
并向容器复制了几个文件
root@armbian:/tmp# ls
1.html
1.jpeg
可以访问到html文件
可以访问图片文件
后面放了index.html文件,http://xx.xx.xx.xx:8000,能默认index.html文件