参考:

官方文档:安装 :: RustDesk文档

大佬的教程: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

其它系统或更多信息详见RustDesk Client :: Documentation for RustDesk

下载后虽然说可以免安装使用,但我反正是装了

在客户端软件中找到“网络”设置,配置服务器的域名和端口

点击“应用”,回到主页,若主页下方亮绿灯显示“就绪”即为成功连上服务器

连接

在主控端输入被控端的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