参考:
大佬的教程:RustDesk搭建教程(全平台远程桌面服务 )-王旭阳个人博客 (wxy97.com)
简介
之前用过teamviewer,向日葵,todesk,teamviewer在国内用比较慢,向日葵免费版比较慢,todesk在国外不让用免费服务器,一连就弹窗要国际服务(要加钱)
正好有个小服务器,试了通过服务器搭建openVPN配合Windows自带的远程桌面和RD Client,连接时间长并且效果并不好。最近了解到有开源可自己部署服务器的远程桌面应用rustdesk,试了试发现效果不错。
RustDesk是一款开箱即用的开源免费的全平台远程桌面软件,包括MacOS、Windows,Android和IOS(不支持被控)的客户端支持。它可以替代类似于向日葵远程桌面、ToDesk等远程桌面服务,这可以让你完全掌控数据,不用担心安全问题。你可以选择使用官方的注册/中继服务器,也可以自建服务器,甚至基于官方代码开发自己的版本。
GitHub官方仓库地址:https://github.com/rustdesk/rustdesk
官方网站地址:https://rustdesk.com
部署服务
环境准备
一台云服务器,配置要求不高,建议带宽大一点。这里使用的系统是Ubuntu22.04 LTS
这里使用docker compose运行的版本,官方也提供了直接在Linux上运行的版本
一个域名(官方声称直接用IP连似乎也可行,但我试了下连不上)
创建数据存放目录与docker-compose描述文件
这里选择将数据放在/home/root/rustdesk-server下
mkdir -p /home/root/rustdesk-server && cd /home/root/rustdesk-server
创建docker-compose描述文件
vim docker-compose.yml
编辑文件内容
version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r <your_domain>:21117 -k _ # 填入个人域名或 IP + hbbr 暴露端口
volumes:
- ./hbbs:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./hbbr:/root
networks:
- rustdesk-net
restart: unless-stopped
开放端口
在你的服务器的防火墙面板(如有)开放如下端口
TCP(21115, 21116, 21117, 21118, 21119)
UDP(21116)
默认情况下,hbbs 监听21115(tcp), 21116(tcp/udp), 21118(tcp),hbbr 监听21117(tcp), 21119(tcp)。务必在防火墙开启这几个端口, 请注意21116同时要开启TCP和UDP。其中21115是hbbs用作NAT类型测试,21116/UDP是hbbs用作ID注册与心跳服务,21116/TCP是hbbs用作TCP打洞与连接服务,21117是hbbr用作中继服务, 21118和21119是为了支持网页客户端。如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。
如果你想选择自己的端口,使用 “-h” 选项查看帮助。
启动docker容器
docker compose up -d #旧版本使用docker-compose up -d
配置域名解析
官方说用IP就能连,但我不行,于是我这里使用cloudflare的解析服务
点击保存以应用域名解析
配置客户端
拷贝连接密钥
在上面的docker-compose文件中,已经声明开启了强制密钥加密认证,所有需要连接的设备都需要提供正确的公钥才能正常连接到服务器。
将rustdesk-server下的hbbs中的id_ed25519.pub文件中的内容拷贝出来
内容大约为K+oTZ7CqVKr1Gw2ZJgr9i9jG2FcvCINTZqxNbBP97Xc=
配置客户端(主控端和被控端都要)
下载rustdesk client
Windows https://rustdesk.com/download
MacOS https://rustdesk.com/docs/en/client/mac/
Android https://rustdesk.com/docs/en/client/android/
IOS https://apps.apple.com/us/app/rustdesk-remote-desktop/id1581225015
下载后虽然说可以免安装使用,但我反正是装了
在客户端软件中找到“网络”设置,配置服务器的域名和端口
点击“应用”,回到主页,若主页下方亮绿灯显示“就绪”即为成功连上服务器
连接
在主控端输入被控端的ID,点击连接后输入一次性密码/永久密码即可连接
效果
延迟
使用设置:原始尺寸,速度最优化,主控、被控都在美国,服务器在香港,大约0.05秒的延迟。(但是ping服务器都要200ms+啊,无法理解.jpg)
占用
docker容器占用如下,服务器CPU E5双核占用0.06%,内存占用3MB(这么恐怖的嘛)
画质
被控端分辨率2k,原始尺寸,编码自动(AV1)
画质最优化,目标码率(平均码率)3686kb,看B站直播网络传输约900kB/s(感觉可能是服务器带宽吃满了)帧率约28
画质平衡,目标码率(平均码率)2432kb,看B站直播网络传输约600kB/s帧率约18
速度最优化,目标码率(平均码率)1843kb,看B站直播网络传输约400kB/s帧率约24