RustDesk远程桌面自建服务教程

本文最后更新于 2026年9月23日 下午

RustDesk 是一款著名的开源、跨平台远程桌面控制软件,被广泛视为 TeamViewer 和 AnyDesk 的最佳免费替代方案。它主要使用 Rust 语言编写,核心亮点在于支持端到端加密 P2P 连接完全自主的服务器自建(Self-Hosting),让用户能 100% 掌控自己的数据安全

核心功能与特性

  • 🌐 超强跨平台支持:全面覆盖 Windows、macOS、Linux、Android、iOS 和 Web 网页端。由于系统限制,iOS 设备仅支持投屏,无法作为被控端。
  • 🔒 安全与自托管:提供免费的中继服务器程序,用户可在自己的 VPS 或本地 NAS(支持 Docker)上自建 RustDesk 中继服务器,彻底摆脱第三方 SaaS 平台的稳定性和隐私限制。
  • 🚀 高效编解码:支持 H.264/H.265 硬件加速以及 VP8/VP9/AV1 软件编解码,即使在低带宽下也能通过调整画质和帧率来保证流畅度。
  • 🛠️ 免安装与高级功能:在 Windows 系统上支持免管理员权限

为什么自建 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 服务器:

2 核 2G

带宽建议 ≥ 5Mbps

步骤 2:安装 Docker

1
ssh root@你的服务器IP

访问 https://getdocker.quickso.cn

一键安装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\MacOS\Linux\安卓\iOS)

① 下载 RustDesk

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

选择 你的客户端版本。

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

  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 查看实时日志。

参考文档

https://lijiong.online/2026/06/22/RustDesk%E8%87%AA%E5%BB%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%95%99%E7%A8%8B/

https://www.liups.net/2026/05/docker-%E8%87%AA%E5%BB%BA-rustdesk-%E8%BF%9C%E7%A8%8B%E5%92%8C-api-%E6%9C%8D%E5%8A%A1/

https://hoshiroko.com/posts/course/rustdesk


RustDesk远程桌面自建服务教程
https://blog.quickso.cn/2026/09/23/RustDesk远程桌面自建服务教程/
作者
木子欢儿
发布于
2026年9月23日
许可协议