1. 创建配置目录与文件

创建 frps 配置目录:

mkdir -p /root/data/docker_data/frps
cd /root/data/docker_data/frps
vim docker-compose.yml

编写 docker-compose.yml 文件内容:

version: '3.8'
services:
    frps:
        restart: always
        network_mode: host
        volumes:
            - './frps.toml:/etc/frp/frps.toml'
        container_name: frps
        image: snowdreamtech/frps

2. 创建 frps 配置文件

创建 frps.toml 文件并编辑内容:

touch frps.toml
vim frps.toml

推荐 frps.toml 配置示例:

bindPort = 5555   #服务端监听端口
vhostHTTPPort = 5580
vhostHTTPSPort = 5443
auth.method = "token"   #服务端连接身份认证,默认token
auth.token = "dsadfgdfgdfg5ernca"   #服务端token密码

transport.tls.force = false  #是否只接受启用了TLS的客户端连接

3. 启动 FRPS 服务

启动 frps 服务:

docker compose up -d

使用docker ps命令查看容器运行状态:

#docker ps 会显示正在运行的docker容器,frps会显示下面类似的
CONTAINER ID   IMAGE                   COMMAND                  CREATED       STATUS       PORTS NAMES
a9a1aa562935   snowdreamtech/frps      "/usr/bin/frps -c /e…"   2 hours ago   Up 2 hours         frps

[!WARNING]
当多个服务器通过同一个 frps 进行连接时,所有服务的 name 字段必须唯一,不能重复!

4. 客户端配置示例

参考配置:

serverAddr = "1234.xyz"
serverPort = 5555
auth.method = "token"
auth.token = "dsadfgdfgdfg5ernca"

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 10021

[[proxies]]
name = "baota-web"
type = "http"
localIP = "127.0.0.1"
localPort = 10252
customDomains = ["btx86.1234.xyz"]

5. Linux 使用systemd实现开机自启相关资料

创建systemd服务文件

创建一个frpc.service文件:

sudo vim /etc/systemd/system/frpc.service

将以下内容粘贴到文件中(根据你的实际情况修改路径):

[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/root/frp/frpc -c /root/frp/frpc.toml
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

启用并启动服务


sudo systemctl daemon-reload

# 启用frpc服务(开机自启)
sudo systemctl enable frpc

# 立即启动frpc服务
sudo systemctl start frpc

检查服务状态

sudo systemctl status frpc

参考以下教程:Ubuntu下设置frp开机启动并后台运行

标签: docker, 部署, 脚本, FRP, 内网穿透

添加新评论