Debian 或 Ubuntu 自建 RustDesk 服务

Contents
  1. 1. 设置变量
  2. 2. 安装基础工具和 Docker
  3. 3. 确保 UFW 正确配置
  4. 4. 部署 RustDesk Server
  5. 5. 防火墙放行 RustDesk 容器端口
  6. 6. 检查服务
  7. 7. RustDesk 客户端如何配置
  8. 8. 未来升级
  9. 9. 参考

本文介绍如何在 VPS 上搭建 RustDesk 服务,本文适用于 Debian 13 以及 Ubuntu 24.04 系统。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文默认已按初始化配置文章对服务器进行了配置。

尤其注意进行 UFW 针对 Docker 的配置,这是前置条件。

VPS 的规格要求:

  1. 512MB 及以上内存
  2. 固定公网 IP

设置变量

请将 rd.example.com 换成你的域名或 VPS 公网 IP。

1
export RD_DOMAIN="rd.example.com"

安装基础工具和 Docker

若已安装 Docker,可跳过此步骤。

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
26
27
28
29
30
31
32
33
34
35
sudo apt update
sudo apt install -y ca-certificates curl wget gnupg

. /etc/os-release

if [ "$ID" = "ubuntu" ]; then
DOCKER_OS="ubuntu"
DOCKER_CODENAME="${UBUNTU_CODENAME:-$VERSION_CODENAME}"
elif [ "$ID" = "debian" ]; then
DOCKER_OS="debian"
DOCKER_CODENAME="$VERSION_CODENAME"
else
echo "Unsupported OS: $ID"
exit 1
fi

sudo install -m 0755 -d /etc/apt/keyrings

sudo curl -fsSL "https://download.docker.com/linux/$DOCKER_OS/gpg" -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/$DOCKER_OS
Suites: $DOCKER_CODENAME
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo systemctl enable --now docker

确保 UFW 正确配置

请务必确保 UFW 已按照此教程进行了配置。

部署 RustDesk Server

RustDesk OSS 服务端主要是 hbbshbbr;官方端口里,最小需要 21115/tcp21116/tcp+udp21117/tcp21118/21119 是 Web Client,不需要就不要开启。

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
26
27
28
29
30
31
sudo mkdir -p /opt/rustdesk-server/data
cd /opt/rustdesk-server

sudo tee compose.yml >/dev/null <<EOF
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs -r ${RD_DOMAIN}:21117
volumes:
- ./data:/root
ports:
- "0.0.0.0:21115:21115/tcp"
- "0.0.0.0:21116:21116/tcp"
- "0.0.0.0:21116:21116/udp"
depends_on:
- hbbr
restart: unless-stopped

hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
ports:
- "0.0.0.0:21117:21117/tcp"
restart: unless-stopped
EOF

sudo docker compose up -d

防火墙放行 RustDesk 容器端口

执行:

1
2
3
4
5
6
sudo ufw route allow proto tcp from any to any port 21115
sudo ufw route allow proto tcp from any to any port 21116
sudo ufw route allow proto udp from any to any port 21116
sudo ufw route allow proto tcp from any to any port 21117

sudo ufw reload

检查:

1
sudo ufw status verbose

若 VPS 有单独的网页控制台安全组或防火墙,确保放行:

1
2
3
4
TCP 21115
TCP 21116
UDP 21116
TCP 21117

检查服务

1
2
3
4
5
6
7
8
cd /opt/rustdesk-server

sudo docker compose ps
sudo docker logs hbbs --tail=80
sudo docker logs hbbr --tail=80

sudo ss -lntup | grep -E '21115|21116|21117'
sudo ss -lnup | grep 21116

获取服务端 public key:

1
sudo cat /opt/rustdesk-server/data/id_ed25519.pub

RustDesk 客户端如何配置

以电脑端客户端为例,点击左侧 ID 旁边的三个点 ⋮,然后进 Network -> ID/Relay server,,按照下面填写:

1
2
3
4
5
6
7
8
ID Server:
rd.example.com(你的域名或 VPS 的 IP)

Relay Server:
留空,或者填 rd.example.com:21117

Key:
粘贴 id_ed25519.pub 内容

之后,关闭并重启客户端即可。

未来升级

1
2
3
4
5
6
7
8
9
cd /opt/rustdesk-server

sudo tar -czf ~/rustdesk-server-data-$(date +%F).tar.gz data

sudo docker compose pull
sudo docker compose up -d
sudo docker image prune -f

sudo ufw reload

参考

Mastodon