首页
/ 零门槛搭建自托管远程控制API服务:RustDesk服务器从入门到精通

零门槛搭建自托管远程控制API服务:RustDesk服务器从入门到精通

2026-04-26 09:23:10作者:何将鹤

RustDesk API服务器是一款开源远程控制解决方案的核心组件,基于Go语言和Beego框架构建,支持自托管部署,为远程设备管理提供安全可靠的API接口。本文将从功能解析、环境准备到实际部署,全方位指导您搭建属于自己的远程控制API服务。

核心优势解析

RustDesk API服务器凭借以下特性在同类解决方案中脱颖而出:

  • 多数据库支持:无缝兼容MySQL和SQLite3,满足不同规模部署需求
  • 企业级安全认证:采用JWT令牌机制,确保API通信安全
  • 跨平台兼容性:支持Windows、Linux及Android等多终端接入
  • RESTful接口设计:遵循标准API规范,易于集成和扩展
  • 轻量化部署:单文件可执行程序,资源占用低,适合边缘设备部署

如何准备部署环境

系统要求

  • Go 1.16+开发环境
  • GCC编译器
  • MySQL 5.7+或SQLite3数据库
  • 2GB以上内存(生产环境建议4GB+)

环境配置步骤

# 安装Go环境
sudo apt update && sudo apt install -y golang gcc

# 验证安装
go version  # 应显示1.16以上版本

💡 技巧提示:对于生产环境,建议使用Nginx作为反向代理,并配置SSL证书以提升安全性。

三步完成部署流程

1. 获取项目代码

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

2. 配置数据库连接

创建并编辑配置文件:

cp conf/app.conf.example conf/app.conf

关键配置参数说明:

appname = rustdesk-api-server
HTTPAddr = 0.0.0.0       # 监听所有网络接口
httpport = 21114         # 默认API端口
runmode = prod           # 生产环境模式
copyrequestbody = true   # 允许读取请求体

[prod]
log_level=6              # 日志级别,6为INFO
log_path=logs/app.log    # 日志存储路径

3. 启动服务

# 安装依赖
go mod download

# 启动服务
go run main.go

⚠️ 注意事项:首次启动时系统会自动创建数据库表结构,请勿中断此过程。

实战应用:API调用示例

1. 创建用户账号

curl -X POST "http://your-server:21114/api/reg" \
  -d "username=admin&password=SecurePass123&auth_key=your_auth_key"

2. 获取设备列表

curl -X GET "http://your-server:21114/api/address-book" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

3. 修改用户密码

curl -X POST "http://your-server:21114/api/set-pwd" \
  -d "username=admin&old_password=SecurePass123&new_password=NewSecurePass456"

客户端配置指南

在RustDesk客户端中正确配置API服务器:

RustDesk服务器配置界面

配置参数说明:

  • ID服务器:填写您的服务器域名或IP
  • 中继服务器:留空使用默认配置
  • API服务器http://服务器IP:21114
  • Key:留空使用默认密钥

[!NOTE] Android客户端配置时不需要添加http://前缀,直接填写服务器IP:21114即可。

常见场景配置方案

方案一:基础单机部署

适用于个人或小团队使用,直接运行二进制文件:

nohup ./rustdesk-api-server > app.log 2>&1 &

方案二:Docker容器化部署

适合多环境一致性部署:

# 构建镜像
docker build -t rustdesk-api-server .

# 运行容器
docker run -d -p 21114:21114 --name rustdesk-api rustdesk-api-server

方案三:高可用集群部署

企业级部署方案,使用Nginx负载均衡:

upstream rustdesk_api {
    server 192.168.1.10:21114;
    server 192.168.1.11:21114;
}

server {
    listen 443 ssl;
    server_name api.rustdesk.example.com;
    
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    
    location / {
        proxy_pass http://rustdesk_api;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

性能优化建议

  1. 数据库优化

    • MySQL启用连接池:max_open_conns = 200
    • 定期执行EXPLAIN分析慢查询
  2. 缓存策略

    • 添加Redis缓存常用API响应
    • 配置适当的缓存过期时间
  3. 日志管理

    • 启用日志轮转防止磁盘占满
    • 生产环境建议关闭DEBUG级别日志

安全加固指南

防火墙配置

# 只开放必要端口
sudo ufw allow 21114/tcp
sudo ufw allow 22/tcp  # 仅用于管理
sudo ufw enable

HTTPS配置

使用Let's Encrypt获取免费SSL证书:

sudo certbot --nginx -d api.rustdesk.example.com

故障排除

问题:服务启动失败

原因:端口被占用或数据库连接错误
解决方案

# 检查端口占用
netstat -tulpn | grep 21114

# 查看错误日志
tail -n 50 logs/app.log

问题:API调用返回401错误

原因:JWT令牌无效或已过期
解决方案

# 重新获取令牌
curl -X POST "http://your-server:21114/api/login" \
  -d "username=admin&password=SecurePass123"

问题:客户端无法连接

原因:服务器防火墙设置或API地址配置错误
解决方案

  • 确认服务器21114端口可访问
  • 检查客户端API服务器地址格式是否正确
登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起