RustDesk API本项目使用 Go 实现了 RustDesk 的 API,并包含了 Web Admin 和 Web 客户端。RustDesk是一个远程桌面软件,提供了自托管的解决方案,官方API是收费的,这次咱们用到的是Github开源的第三方API源码。

✅特性
-
PC端API
- 支持
github
, google
和 OIDC
登录,
- 支持
web后台
授权登录
- 支持
LDAP
(AD和OpenLDAP已测试), 如果API Server配置了LDAP
- 个人版API
- 登录
- 地址簿
- 群组
- 授权登录
- i18n
-
Web Admin
- 用户管理
- 设备管理
- 地址簿管理
- 标签管理
- 群组管理
- Oauth 管理
- 配置LDAP, 配置文件或者环境变量
- 登录日志
- 链接日志
- 文件传输日志
- 快速使用web client
- i18n
- 通过 web client 分享给游客
- server控制
-
Web Client
- 自动获取API server
- 自动获取ID服务器和KEY
- 自动获取地址簿
- 游客通过临时分享链接直接远程到设备
- v2 Preview
-
CLI
Docker部署
1️⃣我们需要先创建一个路径,这个路径储存我们的docker-Compose.yml的文件和配置文件

2️⃣打开Docker,Compose新增项目->输入项目名称->设置路径->上传或者创建docker-
compose.yml把下面代码复制进去,点击完成直至构建完成

🐳Docker compose
注意: 一定要仔细看注释,看注释,修改对应的域名,先跳到文章后面( 外网访问
)看看怎么使用lucky反代再回来部署,不然无法使用web网页端远程。
networks:
rustdesk-net:
external: false
services:
rustdesk:
ports:
- 21114:21114
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: lejianwen/rustdesk-server-s6:latest
environment:
- RELAY=反代21117的域名:端口
- ENCRYPTED_ONLY=1
- MUST_LOGIN=N # 是否必须登录才能远程
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=反代21116的域名:端口
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=反代21117的域名:端口
- RUSTDESK_API_RUSTDESK_API_SERVER=反代21114的域名:端口
- RUSTDESK_API_RUSTDESK_WS_HOST=反代21114的域名:端口
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
- RUSTDESK_API_JWT_KEY= # jwt 为空不启用
- RUSTDESK_API_JWT_EXPIRE_DURATION= # jwt 为空不启用
volumes:
- ./data/rustdesk/server:/data
- ./data/rustdesk/api:/app/data #将数据库挂载
networks:
- rustdesk-net
restart: unless-stopped
给大家看看我配置好的截图

API后台使用
http://IP:21114
后台管理
以上地址访问API后台, 可以进行添加用户,设备管理等操作!
- 默认管理员用户名为:admin
- 通过容器日志获取管理员密码,自己查看日志往下翻,找到如下图的内容就是密码

登录后可以修改一下用户名和密码

2. 客户端使用
配置21114端口的API后,客户端登录即可同步登录账号的信息。
外网访问
外网访问需要有公网,我家是ipv6,所以需要配合域名使用,通过lucky进行DDNS然后再反向代理,通过域名配置客户端,并且进行访问。
配置lucky之前教程发过,不会的朋友直接看教程,如果不使用网页端远程只反代21114、21116、21117端口就行,教程看之前文章,包括配置https访问。
从域名托管到 HTTPS,Lucky 动态 DDNS 搞定外网访问!
另外我是小米路由器,开启了DMZ,有通讯不上的试一试

如果需要web网页端远程就需要反代21118端口和21119端口,注意,21118和21119端口反代的前端域名要与21114使用的一样,并且反代的前端地址一定要带详细地址,必须要按照我说的来,不然网页远程不了,会报错,具体设置如下
21118端口:(前端:21114地址/ws/id)

21119端口 : (前端:21114地址/ws/relay )

看图已经很明了了,如果还不懂,就私信问我吧,这里弄好了再返回到上面配置compose部署代码,部署就行了。

配置客户端
配置客户端之前先去容器查看日志获取key

下载安装客户端
去官网下载对应设备的客户端,我以Windows为例
无法访问github的朋友公众号回复: 远程 获取Windows版网盘下载地址,我会持续更新
# 下载地址
https://github.com/rustdesk/rustdesk/releases

控制端和受控端都需要安装RustDesk,双击下载的exe文件打开就是这个界面,需要点击左边的安装才能完全安装完成

配置ID/中继服务器
1️⃣点击右上角设置

2️⃣选择网络,点击解锁网络设置

3️⃣控制端和受控端都需要设置ID/中继服务器
- ID服务器: 填入21116端口反代的域名不加端口
- 中继服务器 :填入21117端口 反代的域名 不加端口
- API服务器 :填入21114端口 反代的域名:端口
- key : 前面日志里面获取的key
✅ 前面两个开头不要加https或http也不要加端口,切记千万不要加端口,否则连接不上,API需要加https或http
💥再次重申ipv6通过lucky反向代理的朋友,ID、中继服务器域名前面不要加https/http,域名后面也不要加端口,API服务器需要加https/http和端口,参考 如下图

使用方法
使用方法和向日葵、ToDesk一样,知道ID和密码就能远程连接,也可以通过登录账号后同步自己的设备,设置自定义密码直接连接

登录成功

底部出现“就绪”才算成功,如果提示(提示未就绪,请检查网络连接)请检查前面第三步重申的内容
如果登录账号后看不到设备,点击设置->常规,停止服务,再开启服务就行了

网页端
网页端远程访问,最直接的就是访问下面的地址,点击 右上角三个点点,网络配置一下中继服务器,和pc端方法一样,然后登录账号或者直接输入对方的ID远程

21114端口反向代理域名/webclient2/
或者直接访问21114端口反向代理的域名,登录到后台,点击我的设备-> Web Clien 快速访问


APP客户端
APP配置如下


总结
这篇文章部署教程算是详细的了,没有缺斤少两,教程其实很简单,只要你认真看完,百分百能实现web管理、web远程,不会有任何问题,我已经这样使用很久了,使用op软路由拨号的,总是会有问题通讯不上特别是有V4公网的,直接使用DDNS吧,别反代,我是小米路由器,开启了DMZ,通不上的可以试试看。