北辰 发布的文章

根据你提供的搜索结果,我为你整理了使用 Docker Compose 部署 FRP 服务器端(frps)的步骤。以下是详细的操作指南,主要基于使用 snowdreamtech/frps 镜像的方式,并假设你已具备基本的 Docker 和 Docker Compose 知识。

::: note
请注意,FRP 的新版本(约 v0.50.0 之后)配置文件格式可能已从 .ini 过渡到 .toml。你需要根据你下载的 frp_0.64.0_linux_amd64 包中的配置文件示例(例如 frps_full.tomlfrps.ini)来确定配置格式。以下示例将以 TOML 格式为主,并提供 INI 格式的参考。
:::

一、准备工作

  1. 确保环境具备:你的服务器上需要安装好 Docker 和 Docker Compose。
  2. 规划目录结构:建议创建一个专门的目录来存放 FRP 的 Docker Compose 配置文件和配置文件,方便管理。例如:

    mkdir -p /beiChen/frp
    cd /beiChen/frp
  3. 防火墙设置:确保你的服务器防火墙和安全组(如果使用云服务器)放行了 FRP 服务端所需的端口,至少包括 7000(默认绑定端口)和 7500(控制面板端口),以及其他你计划映射的端口(如 80、443 等)。

二、创建 FRP 服务端配置文件

/opt/frp 目录下创建 FRP 服务端的配置文件 frps.toml (或 frps.ini)。

touch /beiChen/frp/frps.toml
chmod 644 /beiChen/frp/frps.toml  # 确保文件可读

使用文本编辑器(如 vimnano)编辑 frps.toml 文件。

TOML 格式配置示例(推荐,适用于新版本)

# /opt/frp/frps.toml

bindAddr = "0.0.0.0"
bindPort = 7000

# 认证令牌,客户端连接时需要提供相同的 token
auth.method = "token"
auth.token = "your_secure_token_here"  # 请修改为强密码

# 启用控制面板
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"           # 控制面板登录用户名
webServer.password = "admin_password_here"  # 控制面板登录密码,请修改

# (可选) HTTP 和 HTTPS 代理端口
# vhostHTTPPort = 80
# vhostHTTPSPort = 443

# (可选) 日志配置
log.to = "console"
log.level = "info"
log.maxDays = 3

# (可选) 限制客户端可使用的远程端口范围
# allowPorts = [
#   { start = 10000, end = 60000 }
# ]

INI 格式配置示例(如果你的 FRP 版本仍支持)

[common]
bind_port = 7000
token = your_secure_token_here  # 请修改为强密码

# 控制面板设置
dashboard_port = 7500
dashboard_user = admin           # 控制面板登录用户名
dashboard_pwd = admin_password_here  # 控制面板登录密码,请修改

# (可选) HTTP 和 HTTPS 代理端口
# vhost_http_port = 80
# vhost_https_port = 443

# (可选) 日志配置
# log_file = ./frps.log
# log_level = info
# log_max_days = 3

重要提示

  • 请务必将 auth.token / tokenwebServer.password / dashboard_pwd 修改为复杂且唯一的密码,这是保障安全的关键。
  • 配置中的 your_secure_token_hereadmin_password_here 需要替换为你自己的强密码。

三、创建 Docker Compose 文件

/beiChen/frp 目录下创建 docker-compose.yml 文件。

sudo touch /beiChen/frp/docker-compose.yml

编辑 docker-compose.yml 文件,内容如下:

# /beiChen/frp/docker-compose.yml
version: '3'

services:
  frps:
    image: snowdreamtech/frps:latest  # 使用 snowdreamtech 的 frps 镜像
    container_name: frps
    restart: always  # 总是重启,除非手动停止
    network_mode: host  # 使用 host 网络模式简化网络配置,端口直接暴露在主机上
    volumes:
      - /beiChen/frp/frps.toml:/etc/frp/frps.toml  # 挂载配置文件
    # 如果你使用的是 .ini 文件,请将挂载路径改为 /etc/frp/frps.ini
    # - /opt/frp/frps.ini:/etc/frp/frps.ini

参数说明

  • network_mode: host: 让容器直接使用宿主机的网络栈,省去 ports 映射的配置,FRPS 监听的端口(如7000, 7500)将直接在主机上打开。如果你更习惯用 bridge 网络和 ports 映射,可以将 network_mode: host 替换为:

    ports:
      - "7000:7000"    # FRP 服务端与客户端通信端口
      - "7500:7500"    # 控制面板端口
      # - "80:80"      # 如果需要 HTTP 代理,取消注释
      # - "443:443"    # 如果需要 HTTPS 代理,取消注释
      # ... 其他需要暴露的端口
  • volumes: 将宿主机上的配置文件挂载到容器内,使得修改配置无需重新构建镜像。

四、启动 FRP 服务端

/opt/frp 目录下,运行以下命令启动服务:

# 后台启动
docker-compose up -d

# 查看启动日志
docker-compose logs -f frps

如果使用的是旧版本的 Docker Compose(命令中带短横线 -),请使用:

docker-compose up -d

看到容器成功启动并无报错信息后,你可以通过浏览器访问 http://你的服务器IP:7500,使用配置文件中设置的用户名和密码登录 FRP 控制面板,查看服务端状态。

五、客户端连接示例

服务端运行后,客户端(如你的本地机器)可以使用 frpc 进行连接。一个基本的客户端配置示例(frpc.toml)如下:

# 客户端配置 frpc.toml
serverAddr = "你的服务器公网IP"
serverPort = 7000
auth.method = "token"
auth.token = "your_secure_token_here"  # 必须与服务端配置的 token 一致

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000  # 通过访问服务器的 6000 端口来连接到客户端的 22 端口

然后在客户端运行:

./frpc -c ./frpc.toml

六、管理命令

  • 停止服务docker-compose down
  • 重启服务docker-compose restart
  • 查看服务状态docker-compose ps
  • 查看实时日志docker-compose logs -f frps

常见问题排查

  • 连接失败:检查服务器防火墙和安全组设置,确保相关端口(如 7000, 7500)已放行。确认客户端配置中的 serverAddrserverPortauth.token 与服务端配置完全一致。
  • 控制面板无法访问:确认配置中 webServer.addrdashboard_addr 设置为 0.0.0.0,并且安全组/防火墙放行了 7500 端口。
  • 配置文件格式错误:确保 TOML 语法正确,特别是引号和缩进。可以使用在线 TOML 验证器检查。
  • 权限问题:确保 Docker 有权限读取挂载的配置文件。

希望这份指南能帮助你成功使用 Docker Compose 部署 FRP 服务端!

一、下载Minio镜像

1.下载镜像

docker pull minio/minio

2.查看镜像

docker images

二、启动前准备

1.创建目录

一个用来存放配置,一个用来存储上传文件的目录
启动前需要先创建Minio外部挂载的配置文件(/beiChen/minio/config),和存储上传文件的目录(/beiChen/minio/data),根据自身创建路径。

mkdir -p /beiChen/minio/config

mkdir -p /beiChen/minio/data

2.在config中创建docker的docker-compose.yml启动文件

version: '3.8'
services:
  minio:
    image: minio/minio
    container_name: minio
    hostname: minio
    restart: always
    ports:
      - "21000:9000"   # API端口 (S3协议)
      - "20000:9090"   # 控制台端口 (Web界面)
    # 注意:'net=host' 模式与端口映射互斥,根据您的需求二选一。
    # network_mode: "host" 
    environment:
      - MINIO_ACCESS_KEY=minioadmin
      - MINIO_SECRET_KEY=minioadmin
    volumes:
      - /beiChen/minio/data:/data
      - /beiChen/minio/config:/root/.minio
    command: server /data --console-address ":9090" --address ":9000"






三、启动