如何在一台VPS上部署多个frps服务?_详细步骤与常见问题解决方案

如何在一台VPS服务器上配置运行多个frps服务实例?

配置方案 端口分配 配置文件 适用场景
多配置文件 不同端口 frps1.ini, frps2.ini 需要完全隔离的服务
单文件多实例 不同端口 frps.ini 相同配置的服务
Docker容器 映射不同端口 docker-compose.yml 快速部署和隔离
系统服务 不同服务名 /etc/systemd/system/ 生产环境部署

如何在一台VPS上部署多个frps服务?

在网络穿透和内网穿透的应用场景中,FRP(Fast Reverse Proxy)是一个广泛使用的工具。当需要在单台VPS服务器上为多个项目或团队提供独立的FRP服务时,部署多个frps实例就成为了一个实际需求。

主要部署方法概览

方法 优点 缺点 适用场景
多配置文件方式 配置简单,隔离性好 需要手动管理多个进程 小型项目,测试环境
系统服务方式 管理方便,稳定性高 配置相对复杂 生产环境,长期运行
Docker容器方式 环境隔离,部署快速 资源占用稍高 云原生环境,快速部署

详细操作步骤

步骤一:准备VPS环境

操作说明: 首先确保VPS系统为CentOS 7+或Ubuntu 18.04+,并安装必要的依赖包。 使用工具提示
  • 操作系统:CentOS 7+/Ubuntu 18.04+
  • 工具:SSH客户端、文本编辑器
# 更新系统包
sudo apt update && sudo apt upgrade -y

安装必要工具

sudo apt install wget curl vim -y

创建工作目录

sudo mkdir -p /etc/frp/multi-instance

步骤二:下载和安装FRP

操作说明: 从GitHub Releases下载最新版本的FRP,并解压到指定目录。
# 下载FRP(以v0.52.3为例)
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp0.52.3linuxamd64.tar.gz

解压文件

tar -zxvf frp
0.52.3linuxamd64.tar.gz

复制可执行文件

sudo cp frp0.52.3linuxamd64/frps /usr/local/bin/ sudo chmod +x /usr/local/bin/frps

步骤三:配置多个frps实例

操作说明: 创建多个配置文件,每个实例使用不同的端口和配置。 实例1配置文件:/etc/frp/multi-instance/frps1.ini
[common]
bindport = 7000
dashboardport = 7500
dashboarduser = admin1
dashboardpwd = password1
token = token1
logfile = /var/log/frps1.log
实例2配置文件:/etc/frp/multi-instance/frps2.ini
[common]
bindport = 7001
dashboardport = 7501
dashboarduser = admin2
dashboardpwd = password2
token = token2
log_file = /var/log/frps2.log

步骤四:创建系统服务

操作说明: 为每个frps实例创建独立的systemd服务文件,便于管理和监控。 服务文件1:/etc/systemd/system/frps1.service
[Unit]
Description=Frp Server Instance 1
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frps -c /etc/frp/multi-instance/frps1.ini
[Install]
WantedBy=multi-user.target
服务文件2:/etc/systemd/system/frps2.service
[Unit]
Description=Frp Server Instance 2
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frps -c /etc/frp/multi-instance/frps2.ini
[Install]
WantedBy=multi-user.target

步骤五:启动和管理服务

操作说明: 重新加载systemd配置,启动服务并设置开机自启。
# 重新加载systemd配置
sudo systemctl daemon-reload

启动服务

sudo systemctl start frps1 sudo systemctl start frps2

设置开机自启

sudo systemctl enable frps1 sudo systemctl enable frps2

检查服务状态

sudo systemctl status frps1 sudo systemctl status frps2

常见问题与解决方案

问题 原因 解决方案
端口冲突错误 多个实例配置了相同端口 检查并修改配置文件中的端口号,确保每个实例使用唯一端口
服务启动失败 权限不足或配置文件错误 检查文件权限,使用journalctl -u frps1查看详细错误信息
客户端连接超时 防火墙未开放相应端口 使用ufw allow 7000,7001,7500,7501开放所需端口
内存占用过高 实例过多或配置不当 调整实例数量,优化配置参数,监控资源使用情况
日志文件过大 未配置日志轮转 配置logrotate或定期清理日志文件

步骤六:验证部署结果

操作说明: 通过访问Dashboard和测试客户端连接来验证多个frps实例是否正常运行。
# 检查进程是否运行
ps aux | grep frps

测试端口是否监听

netstat -tlnp | grep frps

访问Dashboard

curl http://localhost:7500 curl http://localhost:7501
通过以上步骤,您可以成功在一台VPS服务器上部署和管理多个frps服务实例,为不同的项目或用户提供独立的FRP服务。每个实例都可以独立配置、启动和监控,实现了资源的有效利用和服务的灵活管理。

发表评论

评论列表