在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
- 安装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
- 安装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服务端
- 创建FRP配置目录
mkdir -p /data/frp/server
cd /data/frp/server
- 创建
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
- 创建
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客户端
- 在需要穿透的内网机器(假设也是Rocky 9系统)上,创建FRP配置目录
mkdir -p /data/frp/client
cd /data/frp/client
- 创建
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端口。
- 创建
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服务
- 服务端启动
在/data/frp/server目录下,执行以下命令启动FRP服务端:
docker - compose up -d
- 客户端启动
在/data/frp/client目录下,执行以下命令启动FRP客户端:
docker - compose up -d
5. 验证FRP服务
- 服务端验证:
- 可以通过访问
http://your_server_ip:7500(使用在frps.ini中配置的用户名和密码)进入FRP仪表板,查看客户端连接状态等信息。
- 可以通过访问
- 客户端验证:
- 在外部网络环境中,使用SSH连接到
your_server_ip:6000(假设客户端配置的远程端口为6000),如果连接成功,说明内网穿透配置成功。
- 在外部网络环境中,使用SSH连接到
注意事项:
- 确保服务器和客户端之间的网络畅通,尤其是服务端绑定的端口在防火墙中已开放。
- 在实际使用中,应根据具体需求调整FRP的配置参数,如增加更多的穿透服务映射等。
- 生产环境中请设置强密码,并妥善保管
token。

浙公网安备 33010602011771号