RustDesk 自建远程桌面服务:基于 Docker 搭建中继与注册服务器

RustDesk 自建远程桌面服务:基于 Docker 搭建中继与注册服务器

RustDesk 是一款开源的远程桌面软件,支持自建注册/中继服务器,避免依赖第三方公网服务。

首先准备一台有公网 IP 的服务器,安装 Docker 并配置国内镜像源。以下是我当前使用的 Docker 镜像源配置,总体平稳快速:

cat /etc/docker/daemon.json

# {
#   "registry-mirrors": [
#       "https://docker.1panel.live/"
#   ]
# }

起初我在 CentOS 7 上直接部署 RustDesk 的 hbbr/hbbs 服务,虽然能跑起来,但操作和维护都比较繁琐。后来改用官方 Docker 镜像 rustdesk/rustdesk-server 进行搭建,以下是详细步骤。

拉取镜像

docker image pull rustdesk/rustdesk-server

启动 hbbs/hbbr 服务

1. restart-rustdesk-hbbs.sh

#!/bin/bash
appname=hbbs
docker stop $appname && sudo docker rm $appname
docker run -d --name $appname \
  --restart unless-stopped \
  -p 21115:21115 \
  -p 21116:21116 \
  -p 21116:21116/udp \
  -v $PWD/data:/data \
  rustdesk/rustdesk-server hbbs -r [服务器公网IP]:21117 -k /data/id_ed25519

启动后返回如下:

[2025-11-02 07:40:36.449043 +00:00] INFO [src/common.rs:121] Private key comes from id_ed25519
[2025-11-02 07:40:36.449119 +00:00] INFO [src/rendezvous_server.rs:1205] Key: [这个是生成KEY,切莫泄露]
[2025-11-02 07:40:36.449152 +00:00] INFO [src/peer.rs:84] DB_URL=./db_v2.sqlite3
[2025-11-02 07:40:36.451380 +00:00] INFO [libs/hbb_common/src/config.rs:902] Generated new keypair for id:
[2025-11-02 07:40:36.459686 +00:00] INFO [src/rendezvous_server.rs:99] serial=0
[2025-11-02 07:40:36.459704 +00:00] INFO [src/common.rs:45] rendezvous-servers=[]
[2025-11-02 07:40:36.459707 +00:00] INFO [src/rendezvous_server.rs:101] Listening on tcp/udp :21116
[2025-11-02 07:40:36.459710 +00:00] INFO [src/rendezvous_server.rs:102] Listening on tcp :21115, extra port for NAT test
[2025-11-02 07:40:36.459712 +00:00] INFO [src/rendezvous_server.rs:103] Listening on websocket :21118

2. restart-rustdesk-hbbr.sh

#!/bin/bash
appname=hbbr
docker stop $appname && sudo docker rm $appname
docker run -d --name $appname \
  --restart unless-stopped \
  -p 21117:21117 \
  -v $PWD/data:/data \
  rustdesk/rustdesk-server hbbr -k /data/id_ed25519

hbbs 和 hbbr 启动成功后,即可在客户端配置连接。

配置客户端

所有客户端的配置方式一致:

前提:确保云服务器的 21115、21116(tcp/udp)、21117 端口已开放。

RustDesk 客户端配置页 1 RustDesk 客户端配置页 2

至此,便可愉快地进行远程开发了。

如有问题欢迎留言交流。

avatar
hzzhu