如何搭建RustDesk API服务器:从安装到配置的完整指南
RustDesk API服务器是一款基于Go语言开发的后端服务程序,专为RustDesk远程协助软件提供API接口支持。通过部署该服务器,您可以轻松实现远程连接管理、账号创建、密码修改及主机地址簿维护等远程协助管理功能,为企业或个人用户提供稳定可靠的远程控制解决方案。
核心价值:为什么选择RustDesk API服务器 🚀
RustDesk API服务器作为RustDesk生态的重要组成部分,具有以下核心优势:
- 轻量级高效:基于Go语言开发,资源占用低,响应速度快
- 多数据库支持:灵活适配SQLite3和MySQL数据库环境
- 安全认证:集成JWT认证(基于JSON的令牌认证机制),保障接口调用安全
- RESTful设计:遵循REST架构风格,接口规范统一,易于集成
- 跨平台兼容:支持多种操作系统,可与RustDesk全平台客户端无缝对接
环境准备:系统与依赖要求 📋
在开始搭建前,请确保您的系统满足以下环境要求:
技术参数规格
| 项目 | 要求 | 说明 |
|---|---|---|
| 操作系统 | Linux/Unix | 推荐Ubuntu 20.04+或CentOS 8+ |
| Go语言 | 1.16+版本 | 用于编译和运行程序 |
| 编译器 | GCC | 编译依赖库所需 |
| 数据库 | MySQL 5.7+/SQLite3 | 数据存储服务 |
| 网络端口 | 21114 | 默认API服务端口,需确保开放 |
多数据库对比选择
| 数据库类型 | 适用场景 | 优势 | 注意事项 |
|---|---|---|---|
| SQLite3 | 个人使用/小规模部署 | 无需额外配置,文件型数据库 | 不适合高并发场景 |
| MySQL | 团队使用/企业部署 | 支持高并发,数据安全性更好 | 需要单独安装配置服务 |
快速上手:两种安装路径任选 🔧
快速安装:适合新手用户
-
获取项目代码
git clone https://gitcode.com/gh_mirrors/rus/rustdesk-api-server.git cd rustdesk-api-server # 进入项目目录 -
安装依赖包
go mod download # 使用Go模块管理工具安装依赖 -
启动服务
go run main.go # 直接运行主程序,自动创建数据表结构
手动编译:适合生产环境
-
编译可执行文件
go build -o rustdesk-api-server main.go # 编译生成可执行文件 -
设置权限并运行
chmod +x rustdesk-api-server # 添加执行权限 ./rustdesk-api-server # 启动服务
深度配置:系统与数据库设置 🔧
配置文件设置
项目主要配置文件为conf/app.conf,完整配置内容如下:
appname = rustdesk-api-server
HTTPAddr = 0.0.0.0
httpport = 21114
runmode = dev
sessionon = true
autorender = false
copyrequestbody = true
[dev]
httpport = 21114
log_level=7
log_path=logs/app.log
maxlines = 100000
maxsize = 102400
数据库连接配置
创建数据库配置文件(通常为YAML格式),根据选择的数据库类型添加以下配置:
MySQL配置示例:
db:
type: mysql
host: 127.0.0.1
port: 3306
user: root
password: yourpassword
name: rustdesk_api
charset: utf8mb4
SQLite3配置示例:
db:
type: sqlite3
path: ./data/rustdesk_api.db
端口与防火墙设置
[!NOTE] 确保服务器防火墙已开放21114端口,以下是常见Linux系统防火墙设置命令:
Ubuntu/Debian系统:
sudo ufw allow 21114/tcp # 允许TCP 21114端口
sudo ufw reload # 重新加载防火墙规则
CentOS/RHEL系统:
sudo firewall-cmd --zone=public --add-port=21114/tcp --permanent
sudo firewall-cmd --reload
场景示例:客户端配置与API调用
客户端配置步骤
- 打开RustDesk客户端,点击"菜单" > "设置" > "网络"
- 在服务器设置界面填写相关信息
- 点击"确认"保存配置
配置说明:
- ID服务器:填写您的服务器IP或域名
- 中继服务器:通常与ID服务器相同
- API服务器:格式为
http://服务器IP:21114 - Key:留空或填写您的API密钥
API使用方法示例
创建用户账号
curl命令示例:
curl -X POST "http://127.0.0.1:21114/api/reg?username=test&password=test&auth_key=123456"
Python调用示例:
import requests
url = "http://127.0.0.1:21114/api/reg"
params = {
"username": "test",
"password": "test",
"auth_key": "123456"
}
response = requests.post(url, params=params)
print(response.json())
修改用户密码
curl命令示例:
curl -X POST "http://127.0.0.1:21114/api/set-pwd?username=test&password=newpassword&auth_key=123456"
项目结构解析
rustdesk-api-server/
├── app/ # 应用核心代码
│ ├── controllers/ # 控制器层 - 处理HTTP请求
│ ├── dto/ # 数据传输对象 - 定义接口数据结构
│ ├── models/ # 数据模型 - 数据库交互层
│ └── services/ # 业务逻辑层 - 实现核心功能
├── boot/ # 启动配置 - 初始化服务组件
├── conf/ # 配置文件 - 系统参数设置
├── constant/ # 常量定义 - 系统级常量
├── global/ # 全局变量 - 应用共享数据
├── routers/ # 路由配置 - API接口定义
├── utils/ # 工具函数 - 通用功能模块
├── Dockerfile # Docker构建配置
├── db.sql # 数据库初始化脚本
├── go.mod # Go依赖管理
└── main.go # 程序入口
常见问题:故障排除Q&A ❓
Q: 服务启动后无法访问API接口怎么办?
A: 请检查:1) 21114端口是否开放;2) 配置文件中HTTPAddr是否设为0.0.0.0;3) 防火墙是否允许该端口访问。
Q: 数据库连接失败如何解决?
A: 确认数据库服务是否正常运行,检查配置文件中的数据库连接参数是否正确,确保数据库用户有足够权限。
Q: 客户端无法连接到API服务器是什么原因?
A: 检查客户端配置的API服务器地址格式是否正确,Android客户端不需要添加"http://"前缀,直接填写IP:端口即可。
Q: 如何查看服务运行日志?
A: 日志文件默认保存在项目的logs/app.log路径下,可以使用tail -f logs/app.log命令实时查看。
[!NOTE] 重要安全提示:生产环境中建议使用Nginx反向代理API服务器,并启用HTTPS加密传输,同时定期备份数据库以防止数据丢失。
通过以上步骤,您已经掌握了RustDesk API服务器的搭建、配置和使用方法。如有其他问题,可参考项目源码中的文档或提交issue获取帮助。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust075- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
Hy3-previewHy3 preview 是由腾讯混元团队研发的2950亿参数混合专家(Mixture-of-Experts, MoE)模型,包含210亿激活参数和38亿MTP层参数。Hy3 preview是在我们重构的基础设施上训练的首款模型,也是目前发布的性能最强的模型。该模型在复杂推理、指令遵循、上下文学习、代码生成及智能体任务等方面均实现了显著提升。Python00
