背景介绍
FRP 是一款非常优秀的内网穿透和反向代理软件,它允许用户通过公网访问内网资源,无需复杂的网络配置,极大地提高了工作效率。程序员的电脑基本上不关机,偶尔需要从其他电脑取些文件或远程处理点工作上的事,就非常需要这样的软件。
2023年部署的时候 FRP 最新版本是 FRP 0.51.2,使用 docker 部署,从 0.52.0 开始,FRP 将配置文件由 ini 格式改为 toml 格式了,格式变更后,导致原来的配置文件不能复用,便一直未升级到最新版。年底趁手头紧要工作处理完了,便想着顺带升级一下。
服务端升级
服务端部署在腾讯云一台国内服务器上,使用 docker compose 编排,升级后的 docker-compose.yaml 文件内容如下:
services:
frps_work:
restart: always
network_mode: host
volumes:
- ./frps.toml:/etc/frp/frps.toml
- ./logs:/etc/frp/logs
container_name: frps_work
image: snowdreamtech/frps:0.61.1
frps.toml 文件内容如下:
bindPort = 7200
auth.method = "token"
auth.token = "admin"
vhostHTTPPort = 89
vhostHTTPSPort = 4444
subDomainHost = "work.zhuzhilong.com"
enablePrometheus = true
webServer.addr = "0.0.0.0"
webServer.port = 7202
# 由于使用nginx代理的时候开启了基于 webauth 的认证,这里我就不开启了
#webServer.user = "zhuzl"
#webServer.password = "20080708"
上面的配置中,我们配置了一个89端口的http服务,并使用 .work.zhuzhilong.com 的泛域名作为二级域名后缀。我们需要使用nginxProxyManager 配置一个代理,将 .work.zhuzhilong.com 的请求都代理到 89 端口:
开启 SSL,这样代理的服务可以同时启用 http 服务及 https 服务访问:
客户端升级
之前买了一台迷你主机放在公司,作为开发服务器使用,使用的 Ubuntu 操作系统,使用 docker 部署的frpc客户端,修改后的 docker-compose.yaml 文件内容如下:
services:
frpczzl:
restart: always
network_mode: host
volumes:
# - ./frpc.ini:/etc/frp/frpc.ini
- ./frpc.toml:/etc/frp/frpc.toml
- ./logs/:/etc/frp/logs/
container_name: frpczzl
# image: snowdreamtech/frpc:0.51.2
image: snowdreamtech/frpc:0.61.1
frpc.toml 核心内容如下:
user = "work"
serverAddr = "119.29.149.159"
serverPort = 7200
auth.token = "admin"
# for tcp
[[proxies]]
name = "work-mysql-3306"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306
remotePort = 3402
# for web
[[proxies]]
name = "work-http-123"
httpUser = "zhuzl"
httpPassword = "zhuzl"
type = "http"
localIP = "127.0.0.1"
localPort = 80
subdomain = "123"
[[proxies]]
name = "work-http-spug"
type = "http"
localIP = "127.0.0.1"
localPort = 80
subdomain = "spug"
dashboard
frps中我们开启的webServer,可以通过 7202 端口查看 dashboard,界面截图如下:
评论 (0)