RustDesk API完整包安装
RustDesk优点
以下优点大部分是RustDesk专业版才有的~
PC端API
- 个人版API
- 登录
- 地址簿
- 群组
- 授权登录
支持github, google 和 OIDC 登录,
支持web后台授权登录
支持LDAP(AD和OpenLDAP已测试), 如果API Server配置了LDAP - i18n
Web Admin
- 用户管理
- 设备管理
- 地址簿管理
- 标签管理
- 群组管理
- Oauth 管理
- 配置LDAP, 配置文件或者环境变量
- 登录日志
- 链接日志
- 文件传输日志
- 快速使用web client
- i18n
- 通过 web client 分享给游客
- server控制(一些官方的简单的指令 WIKI)
Web Client
- 自动获取API server
- 自动获取ID服务器和KEY
- 自动获取地址簿
- 游客通过临时分享链接直接远程到设备
CLI
- 重置管理员密码
项目地址https://github.com/lejianwen/rustdesk-api
官方建议如下
搭配lejianwen/rustdesk-server使用更佳。
lejianwen/rustdesk-serverfork自RustDesk Server官方仓库
- 解决了使用API链接超时问题
- 可以强制登录后才能发起链接
- 支持客户端websocket
安装RustDesk集成RustDesk API
之前我尝试过只安装RustDesk并且单独安装RustDesk API,发现不太行,客户会出现网络问题,如果个人使用还想要控制台,建议直接使用我的方式进行安装
rustdesk-api 给出了解决办法,我这里不折腾了,想折腾可参考下放文档进行解决
https://github.com/lejianwen/rustdesk-api/issues/92
创建PVC存储卷,默认我放在tools命名空间下,需要修改可自行替换
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rustdesk-data-pvc
namespace: tools
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi
storageClassName: dsm7-nfs-client
创建PVC,创建完毕请及时检查PVC是否为绑定状态
root@k8s-master-01:~/rustdesk-api# kubectl apply -f pvc.yaml
persistentvolumeclaim/rustdesk-data-pvc created
root@k8s-master-01:~/rustdesk-api# kubectl get pvc -n tools|grep ru
rustdesk-data-pvc Bound pvc-2dfcdc29-526b-416b-a692-e10ff51b23a2 50Gi RWO dsm7-nfs-client <unset> 10s
查看k8s节点信息
root@k8s-master-01:~/rustdesk-api# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master-01 Ready control-plane 134d v1.29.9 192.168.21.10 <none> Ubuntu 24.10 6.11.0-29-generic containerd://1.7.27
k8s-master-02 Ready control-plane 134d v1.29.9 192.168.21.11 <none> Ubuntu 24.10 6.11.0-29-generic containerd://1.7.27
k8s-master-03 Ready control-plane 134d v1.29.9 192.168.21.12 <none> Ubuntu 24.10 6.11.0-29-generic containerd://1.7.27
k8s-node-01 Ready <none> 134d v1.29.9 192.168.21.13 <none> Ubuntu 24.10 6.11.0-29-generic containerd://1.7.27
k8s-node-02 Ready <none> 134d v1.29.9 192.168.21.14 <none> Ubuntu 24.10 6.11.0-29-generic containerd://1.7.27
k8s-node-03 Ready <none> 134d v1.29.9 192.168.21.15 <none> Ubuntu 24.10 6.11.0-29-generic containerd://1.7.27
创建Deployment,以下是需要配置的端口映射,因为容器NodePort只能使用30000以上端口,所以需要端口调整,下面所有变量均为NodePort 端口号
-
21114:30114/TCP #API服务器
-
21115:30115/TCP
-
21116:30116/TCP #ID服务器地址
-
21116:30116/UDP #ID服务器地址
-
21117:31117/TCP #中继服务器地址
-
21118:30118/UDP
-
21119:30119/TCP #websocket端口
-
连接IP我使用k8s-node-01的IP地址,NodePorter写任意集群IP都可以

apiVersion: apps/v1
kind: Deployment
metadata:
name: rustdesk-server
namespace: tools
spec:
replicas: 1
selector:
matchLabels:
app: rustdesk-server
template:
metadata:
labels:
app: rustdesk-server
spec:
containers:
- name: rustdesk-server
image: lejianwen/rustdesk-server-s6:latest
ports:
- containerPort: 21114
name: api-port
- containerPort: 21115
name: cli-port
- containerPort: 21116
name: id-tcp
- containerPort: 21116
protocol: UDP
name: id-udp
- containerPort: 21117
name: relay-tcp
- containerPort: 21118
name: relay-udp
- containerPort: 21119
name: web-port
env:
- name: RELAY
value: "192.168.21.13:21117" # 这里需要填写宿主机的IP地址
- name: ENCRYPTED_ONLY
value: "1"
- name: MUST_LOGIN
value: "Y"
- name: TZ
value: "Asia/Shanghai"
- name: RUSTDESK_API_RUSTDESK_ID_SERVER
value: "192.168.21.13:30116" # 这里需要填写宿主机的IP地址
- name: RUSTDESK_API_RUSTDESK_RELAY_SERVER
value: "192.168.21.13:30117" # 这里需要填写宿主机的IP地址
- name: RUSTDESK_API_RUSTDESK_API_SERVER
value: "http://192.168.21.13:30114" # 这里需要填写宿主机的IP地址
- name: RUSTDESK_API_KEY_FILE
value: "/data/id_ed25519.pub"
- name: RUSTDESK_API_JWT_KEY
value: "0mtxRhCoAwaN" # 请确保这是一个安全的密钥
volumeMounts:
- name: rustdesk-data
mountPath: /data
- name: rustdesk-data
mountPath: /app/data
subPath: app_data
volumes:
- name: rustdesk-data
persistentVolumeClaim:
claimName: rustdesk-data-pvc
创建后检查Pod状态
root@k8s-master-01:~/rustdesk-api# kubectl get pod -n tools -o wide|grep ru
rustdesk-server-598f4cc79-s2bjz 1/1 Running 0 49s 192.168.21.13 k8s-node-01 <none> <none>
验证Pod以及SVC状态
root@k8s-master-01:~/rustdesk-api# kubectl get svc,pod -n tools|grep ru
service/rustdesk-server-nodeport NodePort 10.96.1.154 <none> 21114:30114/TCP,21115:30115/TCP,21116:30116/TCP,21116:30116/UDP,21117:31117/TCP,21118:30118/UDP,21119:30119/TCP 8s
pod/rustdesk-server-598f4cc79-s2bjz 1/1 Running 0 63s
端口映射后如下
21114:30114/TCP #API服务器
21115:30115/TCP
21116:30116/TCP #ID服务器地址
21116:30116/UDP #ID服务器地址
21117:31117/TCP #中继服务器地址
21118:30118/UDP
21119:30119/TCP #websocket端口
如果没有公网IP,也可以使用FRP进行代理映射

访问控制台操作
首先重置管理员密码
root@k8s-master-01:~/rustdesk-api# kubectl exec -it -n tools rustdesk-server-8469c45d4f-hblwd sh
/app # ./apimain reset-admin-pwd admin123 #将admin用户密码重置为admin123
[2025-11-13 15:04:04] [INFO] reset password success! (/home/runner/work/rustdesk-api/rustdesk-api/cmd/apimain.go:68 main.init.func3)
/app #
访问Node IP:30114端口
- 默认用户名admin
- 默认密码刚刚已经重置,密码为admin123

客户端需要使用Key,下面进入到容器中查看Key
root@k8s-master-01:~# kubectl exec -it -n tools rustdesk-server-8469c45d4f-hblwd sh
/app # cat /data/id_ed25519.pub
133hbXCrrhny123fslhJCvQCIeTDfw21311hjM=/app #
我这里提供软件包下载,可使用下放地址直接下载,或者官方下载也可以
https://esxi-dsm.frps.cn/s/8f98c0efe5d149fa81
客户端连接测试
首先客户端需要配置


配置完毕后需要确认RustDesk为就绪状态
这里配置文件已经优化,不登录时会不允许连接ID,所以ID泄露也不影响

首先我们不登录时,使用ID进行连接

提示连接拒绝

接下来登录服务
登录需要两边都登录,否则依旧无法连接

登录完毕后在API Web界面就可以看到连接信息
将需要远程的地址添加到地址簿中

添加完毕后刷新地址簿

再次连接尝试

验证完毕

使用WEB界面连接
登录到WEB Admin地址中
使用网页需要将30119映射出来
选择Web Client

输入密码





[…] https://i4t.com/25751.html […]