RustDesk自建服务器教程

Lijiong

RemoteDesk RustDesk 自建服务端部署教程

RemoteDesk 支持连接自建 RustDesk 服务端。本文参考 Liups233 的 Docker 部署教程(已获授权),带你用 Docker 一键部署专属中继服务,实现端到端加密远程连接。


目录


为什么自建 RustDesk 服务端

自建服务端 vs 官方公共服务器
🚀 国内服务器,延迟 10-30ms 海外节点,延迟 200ms+
🔒 数据经过你自己的服务器 数据经过公共中继
🆓 服务端开源,完全免费 免费但有速率限制
👥 Web 后台统一管理设备 无管理面板

工作原理

两个核心组件

  • hbbs(ID 服务器):端口 21114-21116。负责设备注册、发现,提供 Web 后台和 API 服务
  • hbbr(中继服务器):端口 21117-21119。P2P 直连失败时盲转发加密数据包

连接流程

  1. 被控端启动 → 向 hbbs 注册(提交设备 ID 和网络信息)
  2. 控制端向 hbbs 查询目标设备 → 尝试 P2P 直连(低延迟)
  3. 直连失败(NAT 穿透失败)→ 双方通过 hbbr 中继转发,端到端加密,hbbr 无法解密

步骤 1:准备服务器

需一台有公网 IP 的 Linux 服务器:

云厂商 推荐配置 参考月费
阿里云 ECS 2 核 2G ~¥55
腾讯云轻量 2 核 2G ~¥38
华为云 HECS 2 核 2G ~¥50

💡 系统选择 Ubuntu 22.04(推荐)或 **CentOS 7.9 / Rocky Linux 8+**。带宽建议 ≥ 5Mbps。

购买后记录:

  • 公网 IP(如 123.45.67.89
  • root 密码

步骤 2:安装 Docker

SSH 连接

1
ssh root@你的服务器IP

Windows 用户推荐安装 Termius(免费、带图形界面)。

Ubuntu / Debian

1
2
3
4
5
6
7
8
9
10
11
12
# 卸载旧版本
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
apt remove -y $pkg 2>/dev/null
done

# 安装 Docker
apt update && apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

RHEL 9 / Rocky Linux 9

1
2
3
4
5
6
dnf remove -y docker docker-client docker-client-latest docker-common \
docker-latest docker-latest-logrotate docker-logrotate docker-engine podman runc
dnf -y install dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
dnf update -y
dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

安装时如提示验证 GPG 密钥,核对指纹:060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35

启动并验证

1
2
systemctl enable --now docker
docker run --rm hello-world

看到 Hello from Docker! 即成功。


步骤 3:部署服务端

创建项目目录

1
mkdir -p /opt/rustdesk-server && cd /opt/rustdesk-server

编写 docker-compose.yaml

1
nano docker-compose.yaml

写入(<IP> 替换为服务器公网 IP):

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
services:
rustdesk:
image: lejianwen/rustdesk-server-s6:latest
ports:
- 21114:21114
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
environment:
- RELAY=<IP>:21117
- ENCRYPTED_ONLY=1
- MUST_LOGIN=N
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=<IP>:21116
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=<IP>:21117
- RUSTDESK_API_RUSTDESK_API_SERVER=http://<IP>:21114
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
- RUSTDESK_API_JWT_KEY=
volumes:
- ./data/server:/data
- ./data/api:/app/data
networks:
- rustdesk-net
restart: unless-stopped

networks:
rustdesk-net:
external: false

📝 关键变量说明

变量 说明
ENCRYPTED_ONLY=1 仅允许加密连接(强烈推荐保留)
MUST_LOGIN=N N = 允许匿名连接;Y = 必须登录账户才能用

启动服务

1
docker compose up -d

开放防火墙

端口 协议 用途
21114 TCP Web 后台 + API
21115 TCP NAT 类型测试
21116 TCP + UDP ID 服务器
21117 TCP 中继服务器
21118 TCP WebSocket
21119 TCP WebSocket

云控制台:安全组 → 入方向 → 添加 TCP 21114-21119 + UDP 21116,来源 0.0.0.0/0

服务器本地

1
2
3
4
5
6
7
# Ubuntu/Debian
ufw allow 21114:21119/tcp && ufw allow 21116/udp

# CentOS/RHEL
firewall-cmd --add-port=21114-21119/tcp --permanent
firewall-cmd --add-port=21116/udp --permanent
firewall-cmd --reload

步骤 4:获取 Key 和密码

Key(公钥)

所有客户端连接服务端的凭证,必须妥善保存

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

输出类似 OQd8dJxxxxxxxxxxxxxxxxxxxxxxx=,复制到安全位置备用。

管理员密码

1
docker compose logs | grep Password

输出类似 Initial admin password: AbCd1234此密码仅首次启动生成,建议立即登录后台修改。


步骤 5:后台管理

浏览器访问 http://你的服务器IP:21114

  • 用户名:admin
  • 密码:上一步获取的随机密码
常用操作 路径
修改密码 系统 → 用户管理 → 点击 admin
创建子账户 系统 → 用户管理 → 新建
查看/删除设备 系统 → 设备管理

💡 登录后立即修改默认密码,并为家人/同事创建独立子账户。


步骤 6:客户端配置(Windows)

① 下载 RustDesk

https://github.com/rustdesk/rustdesk/releases/latest

选择 rustdesk-x.x.x-x86_64.exe

② 网络设置(两端都需要)

  1. 打开 RustDesk → 左侧「网络」→ 右上角「解锁」
  2. 填写:
字段 内容
ID 服务器 你的IP:21116
中继服务器 你的IP:21117
API 服务器 http://你的IP:21114
Key 粘贴 id_ed25519.pub 完整内容
  1. 点击「应用」

右上角可复制/粘贴配置,多设备快速部署。

③ 被控端设置

「安全」→ 解锁 → 密码 → 选择「使用固定密码」→ 设置强密码。

④ 账户登录(两端)

点击底部用户图标 → 用 admin 或子账户登录。登录后可在设备列表直接看到在线设备,双击连接。

⑤ 仅控制他人时

「常规」→ 服务 → 点击「停止」,避免自身成为被控端。


步骤 7:安全加固与维护

强制账户登录

编辑 docker-compose.yaml

1
- MUST_LOGIN=Y

重启:

1
docker compose down && docker compose up -d

之后未登录用户无法使用,防止未授权接入。

定期备份

1
tar -czf rustdesk-backup-$(date +%Y%m%d).tar.gz /opt/rustdesk-server/data/

更新服务端

1
2
3
cd /opt/rustdesk-server
docker compose pull
docker compose down && docker compose up -d

安全速查

措施 重要性
修改默认管理员密码 🔴 必须
启用 MUST_LOGIN=Y 🟡 推荐
被控端使用强固定密码 🔴 必须
定期更新镜像 🟡 推荐
定期备份 data 目录 🟡 推荐

在 RemoteDesk 中使用

配置自建服务器

在 RemoteDesk 的 RustDesk 设置中填写:

字段 内容
ID 服务器 你的IP:21116
中继服务器 你的IP:21117
API 服务器 http://你的IP:21114
Key id_ed25519.pub 内容

添加主机

字段 填写
主机名称 我的 Windows
协议 RustDesk
地址 目标设备 RustDesk ID(客户端首页 9 位数字)
密码 被控端固定密码

常见问题排查

Q: 客户端显示「未连接到服务器」?

→ ① 确认云安全组已开放全部 7 个端口(TCP 21114-21119 + UDP 21116)
→ ② 确认 Key 完整粘贴,无多余空格换行
→ ③ 确认 ID 服务器格式为 IP:21116(不带 http://
→ ④ docker compose ps 确认容器状态为 Up

Q: 连接上了但非常卡?

→ P2P 直连失败,走了中继转发。优化:确保安全组开放 UDP 21116(打洞依赖),临时关闭 Windows 防火墙测试,升级服务器带宽。

Q: Web 后台 502 / 无法访问?

docker compose ps 确认运行中 → 安全组确认 TCP 21114 开放 → 浏览器用 http:// 而非 https://

Q: 如何查看当前连接状态?

docker compose logs --tail=50 查看实时日志。


📖 本文参考 Liups233 的教程,已获授权。

📬 问题反馈:GitHub Issues

作者 Li Jiong — GitHub @Mydstiny
Built for HarmonyOS NEXT. 鸿蒙之上,连接一切。

  • Title: RustDesk自建服务器教程
  • Author: Lijiong
  • Created at : 2026-06-22 21:30:27
  • Updated at : 2026-06-22 21:50:44
  • Link: https://lijiong.online/2026/06/22/RustDesk自建服务器教程/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments