frps & frpc作者仓库
https://github.com/fatedier/frp/releases
几个有坑的地方
1. 客户端和服务器端版本最好是一致
2. 拉取镜像的时候要指定版本号 如果你 直接这样拉取 snowdreamtech/frps:latest 有可能是拉取0.22的老版本
3. 服务器和客户端上,老版本的.ini配置文件,和新版本的.toml配置文件不要混用
服务器端
frps上的 docker-compose.yml文件
注意要跟上想要的版本号 snowdreamtech/frps:0.61, 要不然很可能会下载到旧镜像,这是一个坑,新的版本号就去上面的作者发布页面找
version: '3'
services:
frps:
image: snowdreamtech/frps:0.61
ports:
- "20:17000" #通讯端口
- "27500:17500" #web管理
- "10022:10022" #用于ssh连接
- "10080:10080" #http
- "10443:10443" #https
- "5051:5051" #postgresql nas
- "1883:1883" #mqtt server nas
# 更多端口根据实际需求增加
# 左边为主机 右边为docker
volumes:
- ./frps.toml:/etc/frp/frps.toml
#- ./frps.log:/etc/frp/frps.log
container_name: frps
restart: unless-stopped
frps上的 frps.toml 配置文件
bindPort = 7000 # frp服务的特定端口,防火墙也需放开该端口
# 服务面板可查看frp服务状态信息
webServer.addr = "0.0.0.0" # 后台管理地址,默认是127.0.0.1,如果是公网访问则改成0.0.0.0
webServer.port = 7500 # 后台管理端口
webServer.user = "admin" # (可选)后台登录用户名
webServer.password = "admin" # (可选)后台登录密码
#transport.tls.force = true # 服务端将只接受 TLS链接
auth.method = 'token' # 客户端访问验证方式
auth.token = "323r234sfafasrZasdf233242243234ef" # 客户端访问验证密码,frpc要与frps一致
# 自定义的监听的端口,所有对服务器该端口访问将被转发到本地内网,做了反向代理可不处理防火墙放行
vhostHTTPPort = 20080
vhostHTTPSPort = 20443
客户端
frpc上的 docker-compose.yml文件
version: '3.9'
services:
frpc:
image: snowdreamtech/frpc:0.61 #这个是作者原版,要跟版本号,要不然拉下来有可能是老版本
volumes:
- './frpc.toml:/etc/frp/frpc.toml'
restart: always
container_name: frpc
frpc上的 frpc.toml 配置文件,把里面的相关参数改成你自己的
serverAddr = "1.1.1.1"
serverPort = 20
auth.method = "token"
auth.token = "323r234sfafasrZasdf233242243234ef"
# EXP
#[[proxies]]
#name = "web1_xxxxx"
#type = "http"
#localIP = "192.168.1.2"
#localPort = 5000
#customDomains = ["nas.yourdomain.com"]
#[[proxies]]
#name = "web2_xxxxx"
#type = "https"
#localIP = "192.168.1.2"
#localPort = 5001
#customDomains = ["nas.yourdomain.com"]
#[[proxies]]
#name = "tcp1_xxxxx"
#type = "tcp"
#localIP = "192.168.1.3"
#localPort = 22
#remotePort = 22222
[[proxies]]
name = "google"
type = "http"
localIP = "192.168.1.30"
localPort = 6666
customDomains = ["wwwww.google.cc"]
#加密
transport.useEncryption = true
#压缩
transport.useCompression = true