
一个Python实现的Rustdesk API接口,支持WebUI管理,基于Django框架开发,兼容多平台和多种Docker架构。
!版本 !Python !Django !平台 !Docker
请使用自定义key,因不填写key或使用服务端自动生成的key而引起的链接超时或建立链接时间过长的问题,不在本项目解决范围内。
rustdesk官方在其新版服务端中已强制要求key(rustdesk-server版本号≥1.1.10)
rustdesk版本≤1.2.3:服务端需配合使用rustdesk-server≤1.1.10,可根据需要选择是否配置服务端key参数。
rustdesk版本>1.2.3:服务端需配合使用rustdesk-server≥1.1.11
rustdesk-server的docker-compose配置参考:
!https://github.com/kingmo888/rustdesk-api-server/raw/master/images/compose_demo.png
key用于防止他人获知中继服务器IP后滥用中继服务。若不配置key,需做好中继IP保密工作。服务端配置密钥(随机生成或自定义)后,未配置对应key的控制客户端无法控制其他机器(被控机器可不填key)。
验证自定义key是否生效,可查看rustdesk server中hbbs的日志:
!https://github.com/kingmo888/rustdesk-api-server/raw/master/images/key_activate.png
!https://github.com/kingmo888/rustdesk-api-server/raw/master/images/front_main.png
用户管理:支持前台网页自主注册和登录
设备管理:支持前台展示设备信息,分管理员版和用户版
自定义别名:支持为设备设置备注名称
后台管理:提供管理员后台操作界面
彩色标签:支持为设备添加彩色标签分类 !https://github.com/kingmo888/rustdesk-api-server/raw/master/images/rust_books.png
在线统计:支持设备在线状态统计
密码保存:支持保存设备访问密码
心跳保活:利用心跳接口自动管理token并保活
设备分享:支持将设备分享给其他用户 !https://github.com/kingmo888/rustdesk-api-server/raw/master/images/share.png
Web控制端:集成Web控制功能(目前仅支持非SSL模式) !https://github.com/kingmo888/rustdesk-api-server/raw/master/images/webui.png
后台主页: !https://github.com/kingmo888/rustdesk-api-server/raw/master/images/admin_main.png
仅支持Windows系统,前往release下载后无需安装环境,直接运行启动.bat即可。
!https://github.com/kingmo888/rustdesk-api-server/raw/master//images/windows_run.png
bash# 克隆代码到本地 git clone https://github.com/kingmo888/rustdesk-api-server.git # 进入目录 cd rustdesk-api-server # 安装依赖 pip install -r requirements.txt # 启动服务(端口可自定义,建议保留21114为默认端口) python manage.py runserver 0.0.0.0:21114
访问方式:http://本机IP:端口
注意:CentOS系统中,Django4可能因系统sqlite3版本过低报错,需修改依赖文件:
路径:xxxx/Lib/site-packages/django/db/backends/sqlite3/base.py(根据实际安装路径调整)
修改内容:
python# from sqlite3 import dbapi2 as Database # 注释此行 from pysqlite3 import dbapi2 as Database # 启用pysqlite3
Docker方法1:自行构建
bashgit clone https://github.com/kingmo888/rustdesk-api-server.git cd rustdesk-api-server docker compose --compatibility up --build -d
Docker方法2:预构建镜像运行
docker run命令:
bashdocker 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配置:
yamlversion: "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数据库端口 |
| 数据库配置(结束) | -- | 参考https://github.com/kingmo888/rustdesk-api-server/blob/master//tutorial/sqlite2mysql.md |
LANGUAGE_CODE | 可选,默认 zh-hans | 语言设置,支持中文(zh-hans)、英语(en) |
数据库中首个注册的账户自动获得超级管理员权限,后续注册账户为普通用户。
客户端需在非绿色版模式下安装为服务,才能定时发送设备信息到API接口。
新版本Key模式可能导致链接速度慢,可在服务端启动时不使用-k参数,客户端也不配置key。
ID_SERVER环境变量,或修改rustdesk_server_api/settings.py中的ID_SERVER配置项,填写ID服务器/中继服务器IP或域名。https://domain.com/webui,需改为http://domain.com/webui多出现于docker配置+nginx反代+SSL组合,需正确设置CSRF_TRUSTED_ORIGINS(SSL环境用https开头,非SSL用http)。
Django4.x需要Mysql8.0,若使用Mysql5.8需将Django版本降至3.2。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务