menu 学习笔记
search self_improvement
目录

frp(3):使用 Docker Compose 搭建简单的 frp 内网穿透服务

huty
huty 2023年12月04日  ·  阅读 1,185

服务端(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

说明

  1. 此文档基于 frp 0.52.3 版本
  2. 0.52.x 版本配置文件为 toml、0.51.x 及以下版本配置文件为 ini,两者格式不一致,详情请参考官方文档或官方项目中的示例
分类: frp
标签: Network frp

评论已关闭