frp(3):使用 Docker Compose 搭建简单的 frp 内网穿透服务
huty
2023年12月04日 · 阅读 1,749
服务端(frps)
1、创建相关目录
mkdir -pv /opt/frps/{conf,logs}
2、编辑 DockerCompose 文件
vim /opt/frps/compose.yaml
version: "3.9"
services:
frps:
image: snowdreamtech/frps:0.52.3
container_name: frps
hostname: frps
restart: always
network_mode: host
volumes:
- /etc/localtime:/etc/localtime:ro
- ./conf/frps.toml:/etc/frp/frps.toml:ro
- ./logs:/frp/logs
3、编辑 frps 的配置文件
vim /opt/frps/conf/frps.toml
# 监听地址
bindAddr = "0.0.0.0"
# 监听端口
bindPort = 7000
# 监听 KCP 协议端口
kcpBindPort = 7000
# 监听 HTTP 协议端口
vhostHTTPPort = 80
# 监听 HTTPS 协议端口
vhostHTTPSPort = 443
# 二级域名后缀
subDomainHost = "hty1024.com"
# 允许代理绑定的服务端端口
allowPorts = [
{ start = 2000, end = 3000 },
{ single = 3001 },
{ single = 3003 },
{ start = 4000, end = 50000 }
]
# 鉴权配置
## 鉴权方式
auth.method = "token"
## Token
auth.token = "123456"
# 日志配置
log.to = "/frp/logs/frps.log"
log.level = "info"
log.maxDays = 180
log.disablePrintColor = false
# 仪表盘配置
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "123456"
# 是否提供 Prometheus 监控接口
enablePrometheus = true
# 允许客户端设置的最大连接池大小
transport.maxPoolCount = 1000
4、启动 frps 服务
docker-compose -f /opt/frps/compose.yaml up -d
5、查看 frps 服务日志
tail -f /opt/frps/logs/frps.log
客户端(frpc)
1、创建相关目录
mkdir -pv /opt/frpc/{conf,logs}
2、编辑 DockerCompose 文件
vim /opt/frpc/compose.yaml
version: '3.9'
services:
frpc:
image: snowdreamtech/frpc:0.52.3
container_name: frpc
restart: always
network_mode: host
volumes:
- /etc/localtime:/etc/localtime:ro
- ./conf/frpc.toml:/etc/frp/frpc.toml:ro
- ./logs:/frp/logs
3、编辑 frpc 的配置文件
vim /opt/frpc/conf/frpc.toml
# 连接配置
## 连接服务端的地址
serverAddr = "frp.hty1024.com"
## 连接服务端的端口
serverPort = 7000
# 鉴权配置
## 鉴权方式
auth.method = "token"
## Token
auth.token = "123456"
# 日志日志
## 日志路径
log.to = "/frp/logs/frpc.log"
## 日志级别
log.level = "info"
## 日志文件最多保留天数
log.maxDays = 180
## 禁用标准输出中的日志颜色
log.disablePrintColor = false
# 代理配置
## TCP 连接
[[proxies]]
### 连接名称
name = "ssh-demo"
### 连接类型
type = "tcp"
### 本地IP
localIP = "192.168.1.100"
### 本地端口
localPort = 22
### 是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输
transport.useEncryption = true
### 是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输
transport.useCompression = false
### 服务端绑定的端口,用户访问服务端此端口的流量会被转发到对应的本地服务
remotePort = 2022
## HTTP 连接
[[proxies]]
### 连接名称
name = "web-demo"
### 连接类型
type = "http"
### 本地IP
localIP = "192.168.1.100"
### 本地端口
localPort = 80
### 子域名列表,用户访问服务端此域名的流量会被转发到对应的本地服务
customDomains = ["demo.hty1024.com"]
### 是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输
transport.useEncryption = true
### 是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输
transport.useCompression = false
4、启动 frpc 服务
docker-compose -f /opt/frpc/compose.yaml up -d
5、查看 frpc 服务日志
tail -f /opt/frpc/logs/frpc.log
6、测试 frp 服务是否正常(基于上述配置文件中的配置进行测试)
-
测试 tcp 服务
telnet测试frps服务器的 2022 端口是否正常 -
测试 http 服务
浏览器访问:demo.hty1024.com
说明
- 此文档基于 frp 0.52.3 版本
- 0.52.x 版本配置文件为 toml、0.51.x 及以下版本配置文件为 ini,两者格式不一致,详情请参考官方文档或官方项目中的示例
评论已关闭