ghcr.io/kingmo888/rustdesk-api-server:v1.3
让 AI 帮你使用轩辕镜像? · 展开查看说明
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
rustdesk-api-server
点击此处查看英文说明。
一个 Python 实现的 Rustdesk API 接口,支持 WebUI 管理
1.2.3 版本与 1.2.6+ 版本区别
[!IMPORTANT] 请使用自定义 key,因不填写 key、或使用服务端自动生成的 key 而引起的链接超时或建立链接时间过长的问题,不在本项目解决范围内。
[!IMPORTANT] rustdesk 官方在其新版服务端中已强制要求 key(rustdesk-server 版本号大概 >= 1.1.10)
-
rustdesk 版本 1.2.3,服务端请配合使用 rustdesk-server >= 1.1.11
当使用 rustdesk-server 自动生成的 key 时,会出现链接缓慢甚至链接超时。
解决办法:使用自定义 key——配置 rustdesk-server 时,传入 k 参数来自定义 key 值,同时客户端同步配置相同的 key,即可秒连。
rustdesk-server 的 docker-compose 配置参考: -
rustdesk 版本
1.2.3,服务端请配合使用 rustdesk-server >= 1.1.11
-
当使用 rustdesk-server 自动生成的 key 时,会出现链接缓慢甚至链接超时。
-
解决办法:使用自定义 key——配置 rustdesk-server 时,传入 k 参数来自定义 key 值,同时客户端同步配置相同的 key,即可秒连。
-
rustdesk-server 的 docker-compose 配置参考:
key 是保证别人不能在知道你中继服务器的 IP 后,利用你的 IP 做中继。如果不配置 key,就做好中继 IP 的保密工作,不要泄露给其他人。而只要服务端配置了密钥,无论是随机生成(生成后本身就固定了),还是自定义的,如果控制客户端不配置对应 key 就无法控制其他机器(被控机器可以不填 key)
key 是保证别人不能在知道你中继服务器的 IP 后,利用你的 IP 做中继。如果不配置 key,就做好中继 IP 的保密工作,不要泄露给其他人。而只要服务端配置了密钥,无论是随机生成(生成后本身就固定了),还是自定义的,如果控制客户端不配置对应 key 就无法控制其他机器(被控机器可以不填 key)
对于自定义 key 是否生效,请看 rustdesk server 中 hbbs 的日志:
hbbs
展示
功能特点
-
支持前台网页自主注册和登录。注册页与登录页:
支持前台网页自主注册和登录。 -
注册页与登录页:
-
支持前台展示设备信息,分为管理员版、用户版。
支持前台展示设备信息,分为管理员版、用户版。 -
支持自定义别名(备注)。
支持自定义别名(备注)。 -
支持后台管理。
支持后台管理。 -
支持彩色标签。
支持彩色标签。 -
支持设备在线统计。
支持设备在线统计。 -
支持设备密码保存。
支持设备密码保存。 -
利用心跳接口自动管理 token 并保活。
利用心跳接口自动管理 token 并保活。 -
支持分享设备给其他用户。
支持分享设备给其他用户。 -
支持 web 控制端(目前仅支持非 SSL 模式,见下面使用问题说明)
支持 web 控制端(目前仅支持非 SSL 模式,见下面使用问题说明)
后台主页:
安装
方法 1:开箱即用
仅支持 Windows,请前往 release 下载,无需安装环境,直接运行启动.bat 即可。截图:
启动.bat
方法 2:代码运行
# 将代码克隆到本地
git clone https://github.com/kingmo888/rustdesk-api-server.git
# 进入目录
cd rustdesk-api-server
# 安装依赖
pip install -r requirements.txt
# 确保依赖安装正确后,执行:
# 端口号请自行修改,建议保留 21114 为 Rustdesk API 默认端口
python manage.py runserver 0.0.0.0:21114
此时即可使用 http://本机IP:端口 的形式来访问。
[!NOTE] 注意:如果 CentOS 配置时,Django4 会因为系统的 sqlite3 版本过低而出问题,请修改依赖库中的文件。路径:xxxx/Lib/site-packages/django/db/backends/sqlite3/base.py(根据情况自行查找包所在地址),修改内容:
xxxx/Lib/site-packages/django/db/backends/sqlite3/base.py
# from sqlite3 import dbapi2 as Database #(注释掉这行)
from pysqlite3 import dbapi2 as Database # 启用 pysqlite3
方法 3:Docker 运行
Docker 方法 1:自行构建
git clone https://github.com/kingmo888/rustdesk-api-server.git
cd rustdesk-api-server
docker compose --compatibility up --build -d
感谢热心网友 @ferocknew 提供。
Docker 方法 2:预构建运行
docker run 命令:
docker run -d \
--name rustdesk-api-server \
-p 21114:21114 \
-e CSRF_TRUSTED_ORIGINS=http://yourdomain.com:21114 \ # 防跨域信任来源,可选
-e ID_SERVER=yourdomain.com \ # Web 控制端使用的 ID 服务器
-v /yourpath/db:/rustdesk-api-server/db \ # 修改 /yourpath/db 为你宿主机数据库挂载目录
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
--network bridge \
--restart unless-stopped \
ghcr.io/kingmo888/rustdesk-api-server:latest
docker-compose 方式:
version: "3.8"
services:
rustdesk-api-server:
container_name: rustdesk-api-server
image: ghcr.io/kingmo888/rustdesk-api-server:latest
environment:
- CSRF_TRUSTED_ORIGINS=http://yourdomain.com:21114 # 防跨域信任来源,可选
- ID_SERVER=yourdomain.com # Web 控制端使用的 ID 服务器
volumes:
- /yourpath/db:/rustdesk-api-server/db # 修改 /yourpath/db 为你宿主机数据库挂载目录
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
network_mode: bridge
ports:
- "21114:21114"
restart: unless-stopped
环境变量
| 变量名 | 参考值 | 备注 |
|---|---|---|
| HOST | 默认 0.0.0.0 | 绑定服务的 IP |
| TZ | 默认 Asia/Shanghai,可选 | 时区 |
| SECRET_KEY | 可选,自定义一串随机字符 | 程序加密秘钥 |
| CSRF_TRUSTED_ORIGINS | 可选,默认关闭验证;如需开启填写你的访问地址 http://yourdomain.com:21114 | 如需关闭验证请删除此变量,而不是留空;防跨域信任来源 |
| ID_SERVER | 可选,默认为和 API 服务器同主机。可自定义如 yourdomain.com | Web 控制端使用的 ID 服务器 |
| DEBUG | 可选,默认 False | 调试模式 |
| ALLOW_REGISTRATION | 可选,默认 True | 是否允许新用户注册 |
| 数据库配置 -- 开始 -- | - | 若不使用 MYSQL 则以下皆无需配置 |
| DATABASE_TYPE | 可选,默认 SQLITE3 | 数据库类型(SQLITE/MYSQL) |
| MYSQL_DBNAME | 可选,默认 - | MYSQL 数据库名 |
| MYSQL_HOST | 可选,默认 127.0.0.1 | MYSQL 数据库的服务器 IP |
| MYSQL_USER | 可选,默认 - | MYSQL 数据库的用户名 |
| MYSQL_PASSWORD | 可选,默认 - | MYSQL 数据库的密码 |
| MYSQL_PORT | 可选,默认 3306 | MYSQL 数据库端口 |
| 数据库配置 -- 结束 -- | - | 查看【sqlite3 迁移 mysql 教程】 |
| LANGUAGE_CODE | 可选,默认 zh-hans | 语言,支持中文(zh-hans)、英语(en) |
HOST 0.0.0.0 TZ Asia/Shanghai SECRET_KEY CSRF_TRUSTED_ORIGINS http://yourdomain.com:21114 ID_SERVER yourdomain.com DEBUG False ALLOW_REGISTRATION True DATABASE_TYPE SQLITE3 MYSQL_DBNAME MYSQL_HOST 127.0.0.1 MYSQL_USER MYSQL_PASSWORD MYSQL_PORT 3306 LANGUAGE_CODE zh-hans zh-hans en
使用问题
-
管理员设置
当数据库中不存在账户时,第一个注册的账户直接获取超级管理员权限,之后注册账户为普通账户。 -
设备信息
经测试,客户端会在非绿色版模式下,安装为服务的模式中,定时发送设备信息到 api 接口,所以如果想要设备信息,需要安装 rustdesk 客户端并启动服务。 -
连接速度慢
新版本 Key 模式链接速度慢,可以在服务端启动服务时,不要带参数的 -k,此时,客户端也不能配置 key。 -
Web 控制端配置
设置 ID_SERVER 环境变量,或修改 rustdesk_server_api/settings.py 文件中 ID_SERVER 配置项,将 ID 服务器/中继服务器 IP 或域名填上。 -
Web 控制端一直转圈
- 检查 ID 服务器填写是否正确
- Web 控制端目前仅支持非 SSL 模式,若 webui 为 https 访问,请将 s 去掉,否则 ws 连不上一直转圈。如:[] []
-
后台操作登录或登出时:CSRF 验证失败. 请求被中断.
这种操作大概率是 docker 配置+nginx 反代+SSL 的组合,要注意修改 CSRF_TRUSTED_ORIGINS,如果是 ssl 那就是 https 开头,否则就是 http。 -
Mysql 版本要求
如果你使用的是 Mysql 数据库,需要注意 django4.x 版本需要 Mysql8.0,如果要使用 mysql5.8 则需要将 django 版本降至 3.2。
开发计划
- 分享设备给其他已注册用户(v1.3+)
[!NOTE] 说明:类似网盘 url 分享,url 激活后可以获得某个或某组或某个标签下的设备 备注:其实 web api 作为中间件,可做的不多,更多功能还是需要修改客户端来实现,就不太值当了。
- 集成 Web 客户端形式(v1.4+)
[!NOTE] 将大神的 web 客户端集成进来,已集成。 来源
- 对过期(不在线)设备的过滤,用以区分在线&离线设备(1.4.7)
[!NOTE] 通过配置方式,对过期超过指定时间的设备清理或过滤。
-
首屏拆分为用户列表页与管理员列表页并增加分页(1.4.6)。
-
支持信息导出到为 xlsx 文件(1.4.6)。
[!NOTE] 支持管理员在【所有设备】页面导出所有设备信息。
-
通过配置项设定是否允许新用户注册(1.4.7)。
-
支持 mysql 及 sqlite3 迁移 mysql(1.4.8)。
-
[-] 用户前端修改密码。
-
[-] 前端改造,所有页面自适应,前后端分离(计划 V2)。
其他相关工具
-
可以修改客户端 ID 的 CMD 脚本
-
rustdesk
-
rustdesk-server
Stargazers over time
联络我
镜像拉取常见问题
功能
排错
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务