使用 Docker 安装 RustDesk

RustDesk 提供了官方的 Docker 镜像,可以直接使用。

1. 拉取 RustDesk 镜像

运行以下命令拉取 RustDesk 的 Docker 镜像:

1
docker pull rustdesk/rustdesk-server

2. 运行 RustDesk 服务

RustDesk 包含两个主要组件:
hbbs:RustDesk 的 ID 服务器和中继服务器。
hbbr:RustDesk 的中继服务器。
运行 hbbs

1
docker run -d --name hbbs -p 12311:12311 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 

-v /path/to/data:/root rustdesk/rustdesk-server hbbs
-d:后台运行容器。
–name hbbs:容器名称。
-p:端口映射(21115 用于 TCP,21116 用于 TCP/UDP,21118 用于 Web 客户端)。
-v /path/to/data:/root:将容器内的 /root 目录挂载到本地的 /path/to/data,用于持久化数据。

运行 hbbr

1
docker run -d --name hbbr -p 12311:12311 -p 21119:21119 -v /path/to/data:/root rustdesk/rustdesk-server hbbr

-p 21117:21117:TCP 端口。
-p 21119:21119:Web 客户端端口。

3. 配置 RustDesk 客户端

下载并安装 RustDesk 客户端:

访问 RustDesk 官网 下载适合你操作系统的客户端。
打开 RustDesk 客户端,进入设置。
在 ID 服务器 和 中继服务器 中填写你的服务器地址(例如 your-server-ip)。
保存设置并重启客户端。

4. 验证安装

在客户端中输入对方的 RustDesk ID 和密码,尝试连接。
如果连接成功,说明 RustDesk 服务已正常运行。

5. 停止和删除容器

如果需要停止或删除容器,可以使用以下命令:
停止容器:

1
docker stop hbbs hbbr

删除容器:

1
docker rm hbbs hbbr
1
docker run -d --name rustdesk-server -p 12301:21115 -p 12302:21116 -p 12303:21116/udp -p 12304:21117 -p 12305:21118 -p 12306:21119 rustdesk/rustdesk-server

密钥文件

  1. RustDesk 服务器(hbbs)在首次运行时会在其工作目录中生成两个密钥文件:
    id_ed25519:私钥文件。
    id_ed25519.pub:公钥文件。
    如果你挂载了本地目录到容器(例如 -v /path/to/data:/root),这些文件会保存在本地的 /path/to/data 目录中。

  2. 检查密钥文件是否存在
    进入挂载的本地目录:

1
cd /path/to/data

检查是否存在以下文件:

1
ls -l id_ed25519 id_ed25519.pub

如果文件不存在,说明 hbbs 没有正确生成密钥文件。
如果文件存在,继续下一步。

  1. 确保客户端使用正确的公钥
    RustDesk 客户端需要配置服务器的公钥(id_ed25519.pub 文件内容)。

打开 id_ed25519.pub 文件,查看公钥内容:

1
vi /path/to/data/id_ed25519.pub

输出示例:
abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890
在 RustDesk 客户端中配置公钥:
打开 RustDesk 客户端。
进入 设置 -> 网络。
在 Key 字段中填入 id_ed25519.pub 文件的内容。
保存设置并重启客户端。

  1. 重新启动 RustDesk 服务
    如果密钥文件已正确配置,但仍然遇到问题,可以尝试重新启动 RustDesk 服务。

停止并删除现有的 hbbs 和 hbbr 容器:

1
2
docker stop hbbs hbbr
docker rm hbbs hbbr

重新运行 hbbs 和 hbbr 容器:

1
docker run -d --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v /path/to/data:/root rustdesk/rustdesk-server hbbs
1
docker run -d --name hbbr -p 21117:21117 -p 21119:21119 -v /path/to/data:/root rustdesk/rustdesk-server hbbr
  1. 验证连接

自定义端口号

21116同时要开启TCP和UDP。
其中21115是hbbs用作NAT类型测试,
21116/UDP是hbbs用作ID注册与心跳服务,
21116/TCP是hbbs用作TCP打洞与连接服务,
21117是hbbr用作中继服务,
21118和21119是为了支持网页客户端。
如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 拉取镜像
docker pull rustdesk/rustdesk-server
# 删除之前的容器(如果有)
docker rm -f rustdesk-server

docker run -d \
--name rustdesk-hbbs \
-p 12302:21115 \
-p 12301:21116 \
-p 12301:21116/udp \
-v /root:/root \
rustdesk/rustdesk-server:latest \
hbbs

docker run -d \
--name rustdesk-hbbs \
-p 12305:21115 \
-p 12306:21116 \
-p 12307:21117 \
-p 12308:21118 \
-p 12309:21119 \
-p 12306:21116/udp \
-v /root:/root \
rustdesk/rustdesk-server:latest \
hbbs

如果不能生成秘钥公钥

使用openssl 和ssh-keygen生成的密钥是不好使的