首页
/ 3步零门槛部署RustDesk API服务器:从安装到运维全指南

3步零门槛部署RustDesk API服务器:从安装到运维全指南

2026-04-26 09:12:46作者:卓艾滢Kingsley

RustDesk API服务器是基于Go语言开发的远程协助解决方案后端,支持自建服务器部署,为企业提供安全可控的远程控制基础设施。本文将通过需求分析、方案设计、实施步骤和场景应用四个阶段,帮助您从零开始完成RustDesk API服务器的私有部署与运维优化。

一、需求分析:为什么需要自建RustDesk API服务器

在企业远程协助场景中,自建API服务器可解决以下核心问题:

  • 数据隐私保护:避免远程控制数据经过第三方服务器
  • 访问速度优化:本地化部署降低网络延迟
  • 权限管理定制:根据企业需求定制访问控制策略
  • 功能扩展自由:基于API接口开发定制化功能

技术选型决策

RustDesk API服务器采用Go语言开发,基于Beego框架构建,提供RESTful API接口,支持SQLite3和MySQL两种数据库方案:

数据库类型 适用场景 优势 限制
SQLite3 小型部署、测试环境 无需额外配置、文件型数据库 不支持高并发、无网络访问能力
MySQL 生产环境、企业级部署 支持高并发、网络访问、数据备份 需要单独安装配置、资源占用较高

💡 专家提示:个人使用或团队规模小于10人时,优先选择SQLite3;企业级应用或预期并发连接数超过50时,建议使用MySQL。

二、方案设计:构建企业级远程控制后端

系统架构设计

RustDesk API服务器架构图

核心组件包括:

  • API服务层:处理客户端请求,提供RESTful接口
  • 业务逻辑层:实现用户认证、设备管理等核心功能
  • 数据持久层:与数据库交互,存储用户和设备信息
  • 工具支持层:提供日志、加密、配置管理等辅助功能

网络拓扑规划

推荐部署架构:

  1. 公网访问层:Nginx反向代理处理SSL终止和请求转发
  2. 应用服务层:RustDesk API服务器集群
  3. 数据存储层:主从架构的MySQL数据库或高可用SQLite配置

⚠️ 注意事项:生产环境必须配置防火墙,仅开放必要端口(默认21114),并启用HTTPS加密传输。

三、实施步骤:从源码到服务的全流程部署

1. 环境准备与依赖安装

首先安装必要的系统依赖:

# Ubuntu/Debian系统
sudo apt update && sudo apt install -y golang gcc git

# 验证Go环境
go version  # 预期结果:显示Go 1.16+版本信息

💡 专家提示:推荐使用Go 1.18或更高版本,以获得更好的性能和安全更新。

2. 获取与配置项目源码

克隆项目代码并安装依赖:

git clone https://gitcode.com/gh_mirrors/rus/rustdesk-api-server
cd rustdesk-api-server

# 安装项目依赖
go mod download  # 预期结果:下载所有依赖包,无错误提示

3. 数据库配置与初始化

根据选择的数据库类型,修改配置文件conf/app.conf

SQLite3配置(默认)

appname = rustdesk-api-server
HTTPAddr = 0.0.0.0
httpport = 21114
runmode = prod
db_type = sqlite3
db_name = rustdesk.db

MySQL配置

appname = rustdesk-api-server
HTTPAddr = 0.0.0.0
httpport = 21114
runmode = prod
db_type = mysql
db_host = 127.0.0.1:3306
db_user = rustdesk
db_pass = yourpassword
db_name = rustdesk

初始化数据库:

# 手动执行SQL脚本(如提供)
cat db.sql | sqlite3 rustdesk.db  # SQLite3用户
# 或
mysql -u root -p rustdesk < db.sql  # MySQL用户

4. 服务启动与验证

启动API服务器:

# 开发模式
go run main.go  # 预期结果:显示启动日志,无错误信息,监听21114端口

# 生产模式(后台运行)
nohup go run main.go > rustdesk-api.log 2>&1 &

验证服务状态:

curl http://127.0.0.1:21114/api/health
# 预期结果:返回{"status":"ok","version":"x.x.x"}

⚠️ 注意事项:首次启动时,系统会自动创建必要的数据表结构,请勿手动修改数据库表结构。

5. 配置Nginx反向代理

为提高安全性和性能,配置Nginx作为反向代理:

server {
    listen 443 ssl;
    server_name rustdesk-api.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://127.0.0.1:21114;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

重启Nginx并验证:

sudo systemctl restart nginx
curl https://rustdesk-api.yourdomain.com/api/health  # 预期结果:返回健康状态

四、客户端配置:连接自建API服务器

在RustDesk客户端中配置自建API服务器:

RustDesk客户端服务器设置界面

配置步骤:

  1. 打开RustDesk客户端,点击"菜单" > "设置" > "网络"
  2. 在"ID/中继服务器"设置中:
    • API服务器:输入您的服务器地址(如https://rustdesk-api.yourdomain.com
    • 保持默认端口21114(Android客户端必须使用此端口)
    • 输入API密钥(如配置了的话)
  3. 点击"确认"保存设置

💡 专家提示:Android客户端配置时不需要添加http://https://前缀,直接输入域名或IP地址。

五、性能调优:提升API服务器处理能力

数据库连接池配置

修改conf/app.conf优化数据库连接:

# MySQL连接池设置
db_max_open = 20    # 最大打开连接数
db_max_idle = 10    # 最大空闲连接数
db_conn_timeout = 30 # 连接超时时间(秒)

日志轮转配置

配置日志自动轮转,避免单个日志文件过大:

log_level = 6       # 日志级别,6为INFO
log_path = logs/    # 日志存放路径
maxlines = 100000   # 每个日志文件最大行数
maxsize = 102400    # 每个日志文件最大大小(KB)
daily = true        # 按天轮转
maxdays = 30        # 日志保留天数

服务进程管理

使用systemd管理服务进程,确保服务稳定运行:

创建服务文件/etc/systemd/system/rustdesk-api.service

[Unit]
Description=RustDesk API Server
After=network.target mysql.service

[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/rustdesk-api-server
ExecStart=/usr/local/go/bin/go run main.go
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl enable rustdesk-api
sudo systemctl start rustdesk-api

六、典型应用场景:企业级部署方案

1. 小型团队部署(10人以下)

架构:单服务器 + SQLite3

  • 硬件要求:2核4G内存,20GB SSD
  • 部署步骤:按基础安装步骤部署,无需额外配置
  • 维护重点:定期备份SQLite数据库文件

2. 中型企业部署(10-100人)

架构:应用服务器 + MySQL数据库

  • 硬件要求:4核8G内存,50GB SSD
  • 高可用策略:配置MySQL主从复制
  • 备份策略:每日自动备份数据库

3. 大型企业部署(100人以上)

架构:负载均衡 + 应用集群 + 主从数据库

  • 负载均衡:Nginx或云负载均衡服务
  • 应用集群:2台以上应用服务器
  • 数据库:MySQL主从架构,支持读写分离
  • 监控:部署Prometheus + Grafana监控系统状态

七、API接口实战:常用功能调用示例

创建用户账号

curl -X POST "http://127.0.0.1:21114/api/reg" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=john_doe&password=SecurePass123&auth_key=your_auth_key"

成功响应:

{
  "code": 0,
  "message": "注册成功",
  "data": {
    "user_id": 1001,
    "username": "john_doe"
  }
}

获取地址簿列表

curl -X GET "http://127.0.0.1:21114/api/address-book" \
  -H "Authorization: Bearer your_jwt_token"

成功响应:

{
  "code": 0,
  "message": "success",
  "data": [
    {
      "id": 1,
      "name": "办公室电脑",
      "address": "192.168.1.100",
      "status": "online"
    },
    {
      "id": 2,
      "name": "家里服务器",
      "address": "10.0.0.5",
      "status": "offline"
    }
  ]
}

八、故障排除:常见问题与解决方案

如何解决端口占用问题?

当启动服务时出现"address already in use"错误:

  1. 查找占用端口的进程:
sudo lsof -i :21114  # 找到占用21114端口的进程心软
  1. 终止占用进程或修改配置文件中的httpport参数使用其他端口。

数据库连接失败怎么办?

  1. 检查数据库服务是否正常运行
  2. 验证配置文件中的数据库连接参数
  3. 确认数据库用户权限是否正确
  4. 检查防火墙是否允许应用服务器访问数据库

客户端无法连接到API服务器?

  1. 检查API服务器是否正常运行:curl http://服务器IP:21114/api/health
  2. 验证网络连通性:telnet 服务器IP 21114
  3. 检查服务器防火墙设置,确保21114端口开放
  4. 确认客户端配置的服务器地址和端口是否正确

九、版本升级与数据迁移

版本升级步骤

  1. 备份当前项目文件和数据库
cp -r rustdesk-api-server rustdesk-api-server_backup
sqlite3 rustdesk.db .dump > backup.sql  # SQLite用户
# 或
mysqldump -u root -p rustdesk > backup.sql  # MySQL用户
  1. 获取最新代码并重新部署
cd rustdesk-api-server
git pull
go mod download
go run main.go  # 重启服务

数据迁移指南

从SQLite3迁移到MySQL:

  1. 导出SQLite3数据:
sqlite3 rustdesk.db .dump > data.sql
  1. 编辑data.sql文件,删除SQLite特有语法
  2. 在MySQL中创建新数据库并导入数据: 自身```sql CREATE DATABASE rustdesk CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE rustdesk; SOURCE data.sql;

4. 修改配置文件使用MySQL连接参数,重启服务

⚠️ **注意事项**:数据迁移前务必做好备份,迁移过程中服务需要暂时停止。

## 总结

通过本文指南,您已掌握RustDesk API服务器的私有部署、配置优化、性能调优和日常运维技能。无论是小型团队还是大型企业,都可以基于本文提供的方案构建安全、高效的远程协助基础设施。随着业务发展,您可以根据实际需求扩展服务架构,为企业远程办公提供稳定可靠的技术支持。

持续关注项目更新,及时获取新功能和安全补丁,确保系统长期稳定运行。如有定制化需求,可以基于API接口开发更多企业专属功能,充分发挥RustDesk API服务器的技术价值。
登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起