
为什么需要自建Rustdesk中继服务器?
Rustdesk是一款开源免费的远程桌面控制软件,被誉为”TeamViewer的开源替代品”。相比TeamViewer的商业收费和连接限制,Rustdesk完全免费且支持自建中继服务器,让你拥有完全自主可控的远程控制体验。
然而,Rustdesk默认使用的是官方公共中继服务器,在中国大陆地区经常出现连接缓慢、延迟高甚至无法连接的情况。解决这个问题的最佳方案就是——在群晖NAS上自建Rustdesk中继服务器。群晖NAS作为家庭或企业的7×24小时运行设备,非常适合承载中继服务器的重任。
本文将以群晖NAS(DSM 7.x)为例,详细讲解如何通过Docker部署Rustdesk中继服务器(hbbs + hbbr)的全过程。
一、准备工作
在开始操作之前,请确保你的群晖NAS满足以下条件:
- 群晖DSM版本:DSM 7.0及以上版本(建议DSM 7.2+)
- 已安装Docker套件:在套件中心搜索”Docker”并安装(DSM 7.2以上版本为”Container Manager”)
- 固定内网IP地址:建议为群晖NAS设置静态IP,避免重启后IP变化导致端口映射失效
- 路由器支持端口转发:需要开放TCP 21115-21119五个端口
- 域名(可选但推荐):如果你有公网IP且绑定了域名,配置会更方便
二、Rustdesk中继架构简介
Rustdesk中继服务器由两个组件组成:
- hbbs(Rustdesk Signal Server):信号服务器,负责客户端之间的连接建立、ID注册和中继转发调度
- hbbr(Rustdesk Relay Server):中继服务器,负责实际的远程桌面数据传输
两个组件需要同时运行,缺一不可。通信端口分配如下:
| 端口 | 协议 | 用途 |
|---|---|---|
| 21115 | TCP | NAT类型测试 |
| 21116 | TCP+UDP | ID注册与心跳服务 |
| 21117 | TCP | 中继数据传输 |
| 21118 | TCP | WebSocket支持 |
| 21119 | TCP | WebSocket中继 |
三、通过Docker部署Rustdesk中继服务器
步骤1:打开Docker/Container Manager
登录群晖NAS管理界面,打开套件中心,确认Docker(或Container Manager)已安装并正在运行。打开Docker应用。
步骤2:创建专用文件夹
在File Station中,在任意共享文件夹下创建一个用于存放Rustdesk配置文件的目录,例如:
/docker/rustdesk/
步骤3:拉取Rustdesk服务器镜像
在Docker的”注册表”中搜索 rustdesk/rustdesk-server-s6,双击下载最新版本(或使用 tag: latest)。
也可以点击Docker → 注册表 → 搜索 → 输入 rustdesk-server-s6 → 选择官方镜像下载。
如果不方便从Docker Hub直接下载,也可以在群晖的SSH终端中执行:
docker pull rustdesk/rustdesk-server-s6:latest
步骤4:创建并启动容器
镜像下载完成后,点击”启动”进入创建容器向导:
容器名称: rustdesk-server
高级设置 → 卷:
- 添加文件夹 → 选择
/docker/rustdesk→ 挂载路径/data
高级设置 → 端口设置:
添加以下端口映射:
| 本地端口 | 容器端口 | 协议 |
|---|---|---|
| 21115 | 21115 | TCP |
| 21116 | 21116 | TCP |
| 21116 | 21116 | UDP |
| 21117 | 21117 | TCP |
| 21118 | 21118 | TCP |
| 21119 | 21119 | TCP |
注意:21116同时需要TCP和UDP两个协议,群晖Docker的端口设置中需要分别添加TCP和UDP各一条。
高级设置 → 环境变量:
无需设置额外环境变量,使用镜像默认值即可。Rustdesk-server-s6版本会自动生成密钥文件。
高级设置 → 执行脚本(可选):
在”高级设置”的”执行脚本”标签页勾选”启动容器后自动启动”,这样群晖重启后Rustdesk服务器会自动运行。
确认设置后,点击”应用”完成容器创建,然后启动容器。
步骤5:检查容器运行状态
容器启动后,打开Docker的”容器”页面,确认rustdesk-server状态为”运行中”。也可以SSH登录群晖查看:
docker ps | grep rustdesk
在 /docker/rustdesk/ 目录下应该能看到生成的配置文件:
id_ed25519— 服务器私钥id_ed25519.pub— 服务器公钥(客户端配置需要用到)
四、配置路由器端口转发
为了让公网客户端能够连接到你的自建中继服务器,需要在路由器上设置端口转发:
- 登录路由器管理界面(通常是192.168.1.1或192.168.0.1)
- 找到”端口转发”或”虚拟服务器”功能
- 添加以下5条端口转发规则(以TP-Link路由器为例):
| 外部端口 | 内部IP | 内部端口 | 协议 |
|---|---|---|---|
| 21115 | NAS的IP | 21115 | TCP |
| 21116 | NAS的IP | 21116 | TCP |
| 21116 | NAS的IP | 21116 | UDP |
| 21117 | NAS的IP | 21117 | TCP |
| 21118 | NAS的IP | 21118 | TCP |
| 21119 | NAS的IP | 21119 | TCP |
| 参数 | 值 |
|---|---|
| ID服务器(hbbs) | 你的域名或公网IP |
| 中继服务器(hbbr) | 你的域名或公网IP |
| API服务器 | 可留空 |
| Key(公钥) | id_ed25519.pub文件内容 |