以前买了台 2020 款 “拯救者 R7000” 作为工作机器,电源适配器加上台笔记本天天背着回家,地铁人又多又挤电脑包很重心累,后来为了降低背负重量,又新买了电源适配器放家里,每天回家少背块砖头瞬间减负。最近又在家里添了台 Mac mini 当 Home Studio,二十四小时不关机,有时候工作也需要用 Windows 远程桌面连上家里的 Mac,看了看向日葵,连接能成功但是在登录页面上卡成幻灯片,都没法登录,估摸着 FPS 只有几帧。只好找找开源解决方案,目前在公网服务器上搭建 RustDesk,可以解决这个问题,下面看看怎么搭建这个服务。

RustDesk 搭建也比较简单,只需要运行 hbbs 和 hbbr 这两个程序即可,一般安装有两种方法,一个是 Docker 运行,另一种是手动下载包安装,这里图方便我就照着官方文档 Docker 开始配置运行。

服务端搭建

我这边服务器配置比较低,CPU 是 2 Core,内存 2Gb,网络 4M

1.服务器网络策略开放 hbbs 和 hbbr 需要用到的端口

hbbs:

  • 21115 (TCP):用于 NAT 类型测试。
  • 21116 (TCP/UDP):请注意,21116 应该同时启用 TCP 和 UDP。21116/UDP 用于 ID 注册和心跳服务。21116/TCP 用于 TCP 打洞和连接服务。

hbbr:

  • 21117 (TCP):用于中继服务。

3.Docker pull 镜像

sudo docker image pull rustdesk/rustdesk-server

如果你没法下载可能是因为网络的问题,目前 Docker 镜像在中国被 GFW 封禁,需要搜搜 Docker 镜像源,我目前用的是 t.me/dockerpull 提供的镜像。

4.运行 hbbs 和 hbbr

这条命令会运行这两个服务,并在当前目录下创建 ./data,里面存放客户端自定义服务器的连接密钥。

sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs
sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr

5.记好当前服务器的 IP 和 Key

通过本地文件查看 Key

ubuntu@blog:~$ cat data/id_ed25519.pub 
pyBp6F1xxxeowwcBoCOTml8=

或者查看 hbbs 启动日志。

pyBp6F17BjGXhRmsudo docker logs hbbs | grep Key:
[2024-12-31 02:28:34.451794 +00:00] INFO [src/rendezvous_server.rs:1205] Key: pyBp6F1xxxeowwcBoCOTml8=

客户端搭建

1.被控端设置

在网络设置里添加ID/中级服务器信息,由于都是默认端口,所以就在 ID 服务器填写服务器 IP(除非你改了默认端口,否则不需要具体填写端口),最后把前面获取到的 Key 填入 Key 输入框。

后面的 API 服务器是要花钱才能用的,不需要填写,中继服务器由于是同一台机器不写的话会自动使用 ID 服务器的地址。

RustDesk 客户端配置自定义服务器.png

配置完成启动服务就可以连接上自建服务器。

RustDesk 客户端启动服务.png
RustDesk 客户端服务启动状态.png

2.客户端设置

只和前面一样需要填写自建服务器的 IP 和 Key,后面就直接输入被控端 ID 连接即可。

可以打开画质统计信息,看看当前连接的速率画面帧率咋样。默认的配置一般 30 帧,对于实时显示的工作不太行。因为不是长期使用,为了保持流畅度,我这里自定义画质,码率 10%,帧率 65,画面大概是 50 来帧,还算凑合,客户端网络不好时延时卡顿还是比较明显的。

画面日志显示.png

服务端版本更新

可以通过 https://github.com/rustdesk/rustdesk-server 查看服务端最新的版本号,这里我查询到新版是 1.1.14。

原来默认的是 latest 不知道镜像具体版本号,这里查询 rustdesk/rustdesk-server 镜像版本号。

ubuntu@blog:~$ sudo docker images
REPOSITORY                 TAG       IMAGE ID       CREATED        SIZE
rustdesk/rustdesk-server   latest    e0892e67d5a7   4 months ago   23.5MB
ubuntu@blog:~$ sudo docker image inspect rustdesk/rustdesk-server:latest | grep -i version
        "DockerVersion": "",
                "org.opencontainers.image.version": "1.1.12"

确定版本号后,查询以前容器存放数据的路径,做好备份防止意外丢失。

ubuntu@blog:~$ sudo docker inspect hbbr hbbs | grep \"Source\":
                "Source": "/home/ubuntu/data",
                "Source": "/home/ubuntu/data",
ubuntu@blog:~$ cp -r /home/ubuntu/data rustDeskData

拉取新镜像,可以选择指定版本号或者不佳版本号默认选择 latest 最新版,这里建议使用指定版本号的方式,方便以后更新时知道版本是什么。

ubuntu@blog:~$ sudo docker image pull rustdesk/rustdesk-server
Using default tag: 1.1.14
latest: Pulling from rustdesk/rustdesk-server
9e455e83a929: Pull complete 
cf1dc9594c7d: Pull complete 
4f3b5a2b0508: Pull complete 
Digest: sha256:680f8ba5accafc264d15076f33a6fdb9cb6f4d963a0fc92e01023ca0e919cc83
Status: Downloaded newer image for rustdesk/rustdesk-server:latest
docker.io/rustdesk/rustdesk-server:1.1.14
ubuntu@blog:~$ sudo docker images
REPOSITORY                 TAG       IMAGE ID       CREATED        SIZE
rustdesk/rustdesk-server   1.1.14    9227b43758be   3 weeks ago    12.8MB
rustdesk/rustdesk-server   latest    e0892e67d5a7   4 months ago   23.5MB

查看有哪些容器,手动停止这两个容器。

ubuntu@blog:~$ sudo docker ps
CONTAINER ID   IMAGE                      COMMAND   CREATED       STATUS       PORTS     NAMES
af8b798714fc   rustdesk/rustdesk-server   "hbbr"    6 weeks ago   Up 6 weeks             hbbr
adb5e91d9118   rustdesk/rustdesk-server   "hbbs"    6 weeks ago   Up 6 weeks             hbbs
ubuntu@blog:~$ sudo docker stop af8b798714fc adb5e91d9118
af8b798714fc
adb5e91d9118
ubuntu@blog:~$ sudo docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

删除老容器。这里删除不会删除到以前容器 -v 挂载的数据。

ubuntu@blog:~$ sudo docker ps -a
CONTAINER ID   IMAGE          COMMAND   CREATED       STATUS                      PORTS     NAMES
af8b798714fc   e0892e67d5a7   "hbbr"    6 weeks ago   Exited (0) 15 minutes ago             hbbr
adb5e91d9118   e0892e67d5a7   "hbbs"    6 weeks ago   Exited (0) 14 minutes ago             hbbs
ubuntu@blog:~$ sudo docker rm hbbr hbbs
hbbr
hbbs
ubuntu@blog:~$ sudo docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

删除老镜像。

sudo docker rmi 9227b43758be e0892e67d5a7

通过 ustdesk/rustdesk-server:1.1.14 镜像创建新容器,通过 -v 来指定老数据,其中 -k 是手动指定了以前生成的老 Key,不然默认生成新 Key(通过 docker logs 可以查看)。

 sudo docker run --name hbbs -v /home/ubuntu/rustDeskData -td --net=host --restart unless-stopped rustdesk/rustdesk-server:1.1.14 hbbs -k pyBp6F1xxxeowwcBoCOTml8=
 sudo docker run --name hbbr -v /home/ubuntu/rustDeskData -td --net=host --restart unless-stopped rustdesk/rustdesk-server:1.1.14 hbbr -k pyBp6F1xxxeowwcBoCOTml8=

到这里手动更新服务端版本所有操作就做完了,这样操作仍然很麻烦,后续有时间会写个 Shell 脚本完成自动化更新操作。

最近更新:

发布时间:

摆哈儿龙门阵