本文参考 :
只会 Windows 也能轻松搭建远程桌面 RustDesk 自用服务器-优快云博客 博客
rustdesk 开源版单文件客户端免输入设置中继服务器给客户开箱即用 - 飘在云端
根据以上文章结合实际搭建过程中遇到的问题重新整理汇总而成。记录一下 ,分享给需要的人。
📌 本文特色
-
专为 Windows 用户优化,无需 Linux 基础
-
整合官方文档 + 实战踩坑经验
-
关键步骤配截图和命令,小白也能轻松搭建
🔍 RustDesk 核心优势
特性 | 说明 |
---|---|
完全开源 | 代码托管在 GitHub,可审计可修改 |
全平台支持 | Windows/macOS/Linux/Android/iOS/网页版 |
自托管中继 | 数据自主可控,摆脱官方服务器流量限制 |
对称连接 | 不区分控制端/受控端,任意设备可互相控制 |
RustDesk 的连接原理
非常简单,就是通过 ID 中继服务器识别双方,然后再由服务器返回指令让双方直接建立连接。
如果双方无法直接建立连接,那么 ID 中继服务器就充当中间人在连接双方之间来回传递数据和信息。
————————————————
在正式开始说明前,我们先来了解一些有助于我们理解的概念术语!
📚 基础概念
1.核心服务组件
服务 | 作用 | 默认端口 |
---|---|---|
hbbs.exe | ID 注册服务器(管理设备连接) | 21115(TCP) 21116(TCP/UDP) 21118(TCP) |
hbbr.exe | 中继服务器(数据传输中转) | 21117(TCP) 21119(TCP) |
通常这两个服务器 可以是在同一台机器中运行。
务必在防火墙开启这几个端口, **注意 21116 要同时开启 TCP 和 UDP **。
TCP/21115 - hbbs 用作 NAT 类型测试
UDP/21116 - hbbs 用作 ID 注册与心跳服务
TCP/21116 - hbbs 用作 TCP 打洞与连接服务
TCP/21117 - hbbr 用作中继服务
TCP/21118/21119 - 网页客户端
————————————————
🛠️ 服务端搭建(5步完成)
步骤 1:安装 NodeJS 和 PM2
-
下载 NodeJS LTS 版(默认安装) 下载地址: https://github.com/rustdesk/rustdesk/releases/download/1.3.9/rustdesk-1.3.9-x86_64.exehttps://nodejs.org/dist/v22.14.0/node-v22.14.0-x64.msi
-
安装 Windows 启动管理器 以管理员身份运行 CMD,执行:
-
npm install -g pm2 npm install pm2-windows-startup -g pm2-startup install
第一条命令:
npm install -g pm2
第二条命令:
npm install pm2-windows-startup -g
第三条命令:
pm2-startup install
-
步骤 2:下载 RustDesk 服务端
- https://github.com/rustdesk/rustdesk-server/releases/download/1.1.14/rustdesk-server-windows-x86_64-unsigned.zip
解压 官方服务端程序 至C:\rustdesk-server
- 步骤 3:启动服务
-
cd C:\rustdesk-server pm2 start hbbs.exe pm2 start hbbr.exe pm2 save # 保存配置实现开机自启 pm2 list # 验证服务状态应为"online"
- 管理运行 ID注册服务器hbbs和中继服务器 hbbr
- 一切准备就绪了,我们可以用 pm2 管理并运行 ID 注册服务器 hbbs 和中继服务器 hbbr 了。
进入到 rustdesk 解压后的目录。
3.1 运行 CMD命令:
cd c:\rustdesk-server //你解压后的RustDesk目录
3.2 运行 :pm2 start hbbs.exe 很好,online 状态
3.3 运行 pm2 start hbbr.exe
非常完美,我们把它保存起来,下次重启后还能跟着系统自动启动多好。
3.4 保存设置 pm2 save
假如你不放心,还想看看它工作的样子,可以随时将它再打印出来查看。
pm2 list
很好,online 状态,再瞅瞅进程信息,用的是 node.exe 。
全部运行后 查看端口状态:
输入 netstat -anp tcp --查看TCP端口21115-21119
netstat -anp udp --查看UDP端口 2116
以上步骤服务器端设置完成.服务器会自动生成 key.
服务端key文件保存位置: 当前文件夹下 id****.pub 文件。 打开文件 可以看到他的Key 值。
例如:JVLuW38EvmRy=
步骤 5:获取公钥
-
服务端自动生成
id_ed25519.pub
文件 -
用记事本打开该文件,内容即为中继服务器公钥(客户端配置需用到)
⚠️ 常见问题排查
问题现象 | 解决方案 |
---|---|
端口未监听 | 检查防火墙规则,重启 PM2:pm2 restart hbbs hbbr |
客户端无法连接 | 确认公钥是否正确,测试外网能否访问服务端 IP+端口 |
PM2 服务未开机启动 | 重新执行 pm2-startup install 并 pm2 save |
--------------------------------------------服务端配置完成---------------------------------------------------------
一键配置 RustDesk 客户端:免设置开箱即用方案(Windows 专属)
🔍 痛点分析
使用自建 RustDesk 中继服务器时,传统方式需要手动配置客户端,步骤繁琐:
-
下载官方客户端
-
手动填写中继服务器地址和公钥
-
处理 UAC 提权问题(否则可能无法正常控制远程设备)
❌ 问题:普通用户难以操作,每次协助都要重复指导,效率极低!
✅ 解决方案:通过预配置文件名,实现客户端自动加载中继服务器设置 + 自动申请 UAC 提权(无需用户手动干预)。
📌 操作步骤
1️⃣ 生成预配置的客户端文件名
只需将 RustDesk 客户端文件重命名为以下格式:
rustdesk-host=<IP或域名>,key=<公钥>,-qs.exe
示例:
rustdesk-host=192.168.0.188,key=JVLuW38EvmRy=,-qs.exe
2️⃣ 发送给用户
-
用户下载后,直接双击运行,无需任何额外设置。
-
客户端会自动:
-
✅ 加载中继服务器配置
-
✅ 申请 UAC 提权(避免权限不足导致控制失败)
-
3️⃣ 验证是否生效
用户可在 RustDesk 客户端 「关于」 页面查看是否成功加载中继服务器信息:
-
如果显示你的自建服务器地址和公钥 → 配置成功!
-
如果空白 → 文件名格式可能有误,请检查!
客户端设置完成。接下来就可以愉快的和对方控制了。
----------------------------------客户端配置结束----------------------------------------------
🌟 跨中继直连秘籍:控制端免配置终极方案
📌 应用场景
-
企业内网跨区域设备管理
-
远程协助使用不同中继服务器的设备
-
临时紧急连接(无需预先配置客户端)
🔥 核心语法(三步构建连接地址)
<受控端ID>/r@<中继地址>?key=<公钥>
参数 | 说明 |
---|---|
/r | 强制走中继(绕过P2P直连) |
@ | 地址分隔符(不可省略) |
?key= | 中继服务器身份验证(需与服务端公钥一致) |
🛠️ 实战演示
情景模拟
-
受控端ID:
80535985
-
受控端中继地址:
192.168.0.188
-
受控端公钥:
JVLuW38EvmRy=
连接地址生成
80535985/r@192.168.0.188?key=JVLuW38EvmRy=
操作步骤
-
打开 RustDesk 控制端
-
在「远程ID」输入框粘贴完整地址
-
点击「连接」立即建立远程控制