在rocky 9 上使用docker compose 安装 FRP内网穿透服务的方案

以下是在Rocky 9上使用Docker Compose安装FRP内网穿透服务的详细方案:

0.替换Docker源为腾讯源

  • 在Rocky 9系统上,编辑Docker官方源配置文件。如果之前添加的是Docker官方默认源,先备份原文件:
sudo mv /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce.repo.backup
  • 创建新的Docker源配置文件/etc/yum.repos.d/docker-ce.repo,内容如下:
[docker-ce-stable]
name = Docker CE Stable - $basearch
baseurl = https://mirrors.cloud.tencent.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://mirrors.cloud.tencent.com/docker-ce/linux/centos/gpg

[docker-ce-test]
name = Docker CE Test - $basearch
baseurl = https://mirrors.cloud.tencent.com/docker-ce/linux/centos/$releasever/$basearch/test
enabled = 0
gpgcheck = 1
gpgkey = https://mirrors.cloud.tencent.com/docker-ce/linux/centos/gpg

[docker-ce-nightly]
name = Docker CE Nightly - $basearch
baseurl = https://mirrors.cloud.tencent.com/docker-ce/linux/centos/$releasever/$basearch/nightly
enabled = 0
gpgcheck = 1
gpgkey = https://mirrors.cloud.tencent.com/docker-ce/linux/centos/gpg

1. 安装Docker和Docker Compose

  1. 安装Docker
    • 更新系统软件包:
sudo dnf update
#安装Docker所需的依赖包:
sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2
#添加Docker官方软件源:
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
#安装Docker CE:
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动并设置Docker开机自启:
sudo systemctl start docker
sudo systemctl enable docker
  1. 安装Docker Compose
#也可以用梯子下到本地传上去
#从官方GitHub仓库下载最新版本的Docker Compose(以当前最新稳定版本为例,实际操作时请前往[Docker Compose Releases](https://github.com/docker/compose/releases)获取最新版本号)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.17.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#添加可执行权限:
sudo chmod +x /usr/local/bin/docker-compose

2. 配置FRP服务端

  1. 创建FRP配置目录
mkdir -p /data/frp/server
cd /data/frp/server
  1. 创建frps.ini配置文件,示例内容如下:
[common]
bind_port = 7000
token = "XXXXXX"
vhost_http_port = 8080 # 客户端配置http 转发的时候必须配置该项。端口号为云端服务器端口号
vhost_https_port = 443 #https请求

tcp_mux = false  #去掉速度限制

# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = XXXXXX
enable_prometheus = true

# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
  1. 创建docker - compose.yml文件,内容如下:
version: '3'
services:
  frps:
    image: snowdreamtech/frps
    container_name: frps
    restart: always
    network_mode: "host"
    volumes:
      - ./frps.ini:/etc/frp/frps.ini
    command: "-c /etc/frp/frps.ini"

3. 配置FRP客户端

  1. 在需要穿透的内网机器(假设也是Rocky 9系统)上,创建FRP配置目录
mkdir -p /data/frp/client
cd /data/frp/client
  1. 创建frpc.ini配置文件,示例内容如下(假设服务端公网IP为your_server_ip):
[common]
server_addr = [your_remote_ip]
server_port = 7000
token = "XXXXXX"

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6022

在上述配置中,your_token是用于服务端和客户端验证的令牌,你可以自定义;[ssh]部分配置了将本地的SSH服务(默认端口22)映射到服务端的6000端口。

  1. 创建docker - compose.yml文件,内容如下:
version: '3'
services:
  frps:
    image: snowdreamtech/frpc
    container_name: frpc
    restart: always
    network_mode: "host"
    volumes:
    - ./frpc.ini:/etc/frp/frpc.ini
    command: "-c /etc/frp/frpc.ini"

4. 启动FRP服务

  1. 服务端启动
    /data/frp/server目录下,执行以下命令启动FRP服务端:
docker - compose up -d
  1. 客户端启动
    /data/frp/client目录下,执行以下命令启动FRP客户端:
docker - compose up -d

5. 验证FRP服务

  1. 服务端验证:
    • 可以通过访问http://your_server_ip:7500(使用在frps.ini中配置的用户名和密码)进入FRP仪表板,查看客户端连接状态等信息。
  2. 客户端验证:
    • 在外部网络环境中,使用SSH连接到your_server_ip:6000(假设客户端配置的远程端口为6000),如果连接成功,说明内网穿透配置成功。

注意事项:

  • 确保服务器和客户端之间的网络畅通,尤其是服务端绑定的端口在防火墙中已开放。
  • 在实际使用中,应根据具体需求调整FRP的配置参数,如增加更多的穿透服务映射等。
  • 生产环境中请设置强密码,并妥善保管token
posted @ 2025-06-19 15:31  弗拉宾教头  阅读(262)  评论(0)    收藏  举报