前言
之前分享的配置rustdesk的帖子只是搭建了一个简易服务器,仅能实现简单的远程桌面功能。在后续的使用中切换设备使用时无法看到之前连接的设备,必须知道每个设备的id号,才能在新设备上连接。数据无法在设备间迁移,感觉很麻烦。而官方将账号登录的功能放到了专业版里,普通的自建服务器想实现账号管理只能另想办法。
好在网上有一些大佬自建了rustdesk-api服务器项目,本文测试了网上的一些方法,统一整理了一个简单搭建方案作为补充。另外还整理了傻瓜式搭建rustdesk服务器的方法。
参考资料:https://github.com/lejianwen/rustdesk-apihttps://github.com/lejianwen/rustdesk-api/pkgs/container/rustdesk-api
文章目录
前言windows一键部署1、RustDesk· 下载安装包· 运行a. 解压文件b. 运行前需要安装node.jsc. 安装pm2d. 运行hbbr和hbbs 2、API· 下载安装包· 运行a. 解压安装包b. 编辑配置文件c. 双击运行apimain.exed. 访问后台 Linux一键部署1、RustDesk· 下载安装包· 运行 2、API· 下载安装包· 运行a. 编辑配置文件b. 执行`apimain`c. 访问后台 Linux的docker安装RustDeskAPI· 拉取镜像(需要能访问国外网站)· 使用docker-compose安装· 运行docker· 访问后台 后续登录配置若想使用github绑定登录账号,需要配置oauth· GitHub创建oauth apps· api后台创建oauth· 配置完后就可以使用GitHub绑定账号进行授权登录了 解决登录账号后连接慢的问题4种解决方案1、server端指定key。2、server端使用系统生成的key,或者自定义的密钥对,但如果client已登录,链接时容易超时或者链接不上,可以退出登录后再链接就可以了,webclient可以不用退出登录3、server端使用系统生成的key,或者自定义的密钥对,fork官方客户端的代码将secure_tcp修改成直接返回,然后通过Github Actions编译,下载编译后的客户端。 参考官方文档4、使用编译好的客户端,操作简单 有问题可以评论或者私信(=.=)
windows一键部署
下载文件需要能访问国外网站
1、RustDesk
· 下载安装包
下载地址:windows-x86_64.zip
· 运行
a. 解压文件
b. 运行前需要安装node.js
下载地址:Node.js
c. 安装pm2
打开cmd,输入下列命令
npm install -g pm2npm install pm2-windows-startup -gpm2-startup install
d. 运行hbbr和hbbs
在解压后的文件目录下打开cmd
cd C:\rustdesk-server-windows-x64pm2 start hbbs.exepm2 start hbbr.exepm2 save#保存PM2,开机自启
查看运行状态
pm2 list
2、API
· 下载安装包
下载地址:Releases · lejianwen/rustdesk-api
· 运行
a. 解压安装包
b. 编辑配置文件
记事本或其他文本编辑器打开config.yaml
lang: "zh-CN"app: web-client: 1 # 1:启用 0:禁用gin: api-addr: "0.0.0.0:21114" mode: "release" #release,debug,test resources-path: 'resources' #对外静态文件目录 trust-proxy: ""gorm: type: "sqlite" max-idle-conns: 10 max-open-conns: 100mysql: username: "" password: "" addr: "" dbname: ""rustdesk:# 自行配置信息 id-server: "你的api服务器的域名或IP:21116" relay-server: "你的api服务器的域名或IP:21117" api-server: "http://你的api服务器的域名或IP:21114" key: "自己设置key" personal: 1logger: path: "./runtime/log.txt" level: "warn" #trace,debug,info,warn,error,fatal report-caller: trueproxy: enable: false host: ""redis: addr: "127.0.0.1:6379" password: "" db: 0cache: type: "file" file-dir: "./runtime/cache" redis-addr: "127.0.0.1:6379" redis-pwd: "" redis-db: 0oss: access-key-id: "" access-key-secret: "" host: "" callback-url: "" expire-time: 30 max-byte: 10240jwt: private-key: "./conf/jwt_pri.pem" expire-duration: 360000
c. 双击运行apimain.exe
d. 访问后台
浏览器打开IP或域名:21114
,默认用户名和密码都是admin
Linux一键部署
1、RustDesk
· 下载安装包
下载地址:Release 1.1.12 · rustdesk/rustdesk-server
下载压缩包直接解压,下载deb文件使用dpkg
命令进行安装。
· 运行
给hbbr和hbbs增加可执行权限,然后直接 ./ 运行即可
2、API
· 下载安装包
下载地址:Releases · lejianwen/rustdesk-api
· 运行
a. 编辑配置文件
vim ./release/conf/config.yaml
配置信息和之前的一样
b. 执行apimain
给apimain文件增加执行权限,./apimain 直接执行即可
c. 访问后台
依旧浏览器打开IP或域名:21114
,默认用户名和密码都是admin
Linux的docker安装
RustDesk
查看我的rustdesk基础配置文章:自建RustDesk实现远程桌面
API
· 拉取镜像(需要能访问国外网站)
docker pull ghcr.io/lejianwen/rustdesk-api:latest
· 使用docker-compose安装
mkdir /data/rustdesk/api# 创建项目目录cd /data/rustdesk/apivim docker-compose.yaml# 创建yaml文件
docker-compose.yaml文件
version: '2.1'services: rustdesk-api: container_name: rustdesk-api environment: - TZ=Asia/Shanghai - RUSTDESK_API_RUSTDESK_ID_SERVER=域名或IP:21116 - RUSTDESK_API_RUSTDESK_RELAY_SERVER=域名或IP:21117 - RUSTDESK_API_RUSTDESK_API_SERVER=http://域名或IP:21114 - RUSTDESK_API_RUSTDESK_KEY=自设置key ports: - 21114:21114 image: lejianwen/rustdesk-api volumes: - /data/rustdesk/api:/app/data #将数据库挂载出来方便备份 networks: - rustdesk-net restart: unless-stoppednetworks: rustdesk-net: external: false
· 运行docker
docker-compose up -d
· 访问后台
依旧浏览器打开IP或域名:21114
,默认用户名和密码都是admin
后续登录配置
上面的步骤配置完后就能在后台创建账号,客户端要使用创建的账号进行登录,还需要配置客户端信息。在客户端设置中配置api服务器,就能实现登录功能。
若想使用github绑定登录账号,需要配置oauth
· GitHub创建oauth apps
地址:https://github.com/settings/developers
填写相关信息,自己服务器的IP或域名
创建好后会生成ClientId和ClientSecret
· api后台创建oauth
填入生成的ClientId和ClientSecret
RedirectUrl为:http://你的域名或IP/api/oauth/callback
选择github进行创建
· 配置完后就可以使用GitHub绑定账号进行授权登录了
解决登录账号后连接慢的问题
4种解决方案
1、server端指定key。
· 优点:简单
· 缺点:链接不是加密的
hbbs -r <relay-server-ip[:port]> -k <key>hbbr -k <key>比如hbbs -r <relay-server-ip[:port]> -k abc1234567hbbr -k abc1234567
2、server端使用系统生成的key,或者自定义的密钥对,但如果client已登录,链接时容易超时或者链接不上,可以退出登录后再链接就可以了,webclient可以不用退出登录
· 优点:链接加密
· 缺点:操作麻烦
3、server端使用系统生成的key,或者自定义的密钥对,fork官方客户端的代码将secure_tcp修改成直接返回,然后通过Github Actions编译,下载编译后的客户端。 参考官方文档
· 优点:链接加密,可以自定义客户端一些功能,编译后直接可用
· 缺点:需要自己fork代码,编译,有点难度
4、使用编译好的客户端,操作简单
使用大佬fork的代码,已经修改了secure_tcp,可以直接下载使用,下载地址
· 优点:代码改动可查看,Github Actions编译,链接加密,直接下载使用
· 缺点:可能跟不上官方版本更新
对链接加密要求不高的可以使用1,对链接加密要求高的可以使用3或4