说实话,很多人一开始对“自建中继”这件事是持怀疑态度的:RustDesk 官方不是免费提供公共服务器吗,何必自己买台云主机折腾?但等你真正把家里、办公室那几台没有公网 IP 的内网机器纳入远控范围,并且频繁遇到官方节点连接抖动、高峰期排队、加密密钥不受自己控制这些问题之后,就会明白“RustDesk 搭建公网中继服务器”的价值所在。这篇文章不会只给你贴一段 docker run 命令,而是把 hbbs、hbbr 各自做什么、端口为什么要开这么多、客户端三个配置项到底在配什么、以及部署后如何检查链路是否真的走通,完整地讲清楚。内容偏实操,适合已经用过一阵子 RustDesk、想彻底摆脱官方节点限制的人。
1. 为什么绕不开自建中继:公共服务器和自建节点的真实差异
先别急着敲命令,我们得先对齐一个认知:RustDesk 远控内网机器,本质上是在两台没有公网 IP 的设备之间建立一条“间接通路”。这条通路的核心角色,就是公网上的服务器。官方服务器虽然方便,但用久了你会明显感觉到几个问题。
1.1 官方中继节点的体验瓶颈
RustDesk 官方在全球部署了一批 ID 服务器和中继服务器,国内访问时延迟和稳定性并不总是理想。某些运营商网络环境下,连接可能会频繁超时,尤其是跨网、跨地区的时候。你可能遇到过这种情况:远控窗口好不容易弹出来,画面操作起来却像幻灯片,键盘输入延迟能到两秒以上——这通常是流量走了延迟很高的官方中继节点,而不是你的设备之间点对点直连。
还有一些场景下,团队或公司内部对数据流向比较敏感,不想让远控会话的认证信息、剪贴板内容、文件传输数据经过第三方服务器。自建中继后,信令和转发链路完全由自己掌控,至少从链路层面上不再依赖外部公共资源。
1.2 自建中继解决了哪几类问题
我把实际使用中的收益整理成了一张对比表,方便你对号入座:
| 对比维度 | 官方公共服务器 | 自建公网中继服务器 |
|---|---|---|
| 初始成本 | 免费 | 需要一台轻量云主机,约几十元/月 |
| 访问延迟 | 受官方节点分布影响,高峰期不稳定 | 可选择与客户端就近的机房,延迟可控 |
| 数据链路 | 信令和部分中继流量经过官方节点 | 全部经过自己的服务器 |
| 密钥体系 | 使用 RustDesk 官方配置 | 使用自生成 ed25519 密钥对,可控性更强 |
| 端口开放 | 无需设置 | 需要在云安全组放行 21115-21119 |
| 适用规模 | 个人临时使用 | 个人主力远控、团队办公、企业内部支持 |
那是不是所有场景都值得自建?如果你的设备全在一个局域网里,或者只是临时远程一两次,直接用官方服务器和随机密码就够了。但如果你需要长期、高频地访问分布在不同网络内的机器,并且想固定设备 ID、统一管理密钥、让每次远控的链路质量都可预期,那花一两个小时搭一台中继服务器非常值得。毕竟 RustDesk 服务端本身对硬件的要求极低,1 核 1G 内存的小鸡就能稳稳跑起来。
1.3 一个影响体验的关键认知:P2P 打洞和中继不是二选一
很多教程会把中继服务器称为“兜底方案”,这容易让人误以为只要自建了服务器,所有流量就都会经过它。实际不是这样。RustDesk 的链接策略是:先通过 hbbs 交换双方的网络地址信息,尝试在控制端和被控端之间建立点对点(P2P)连接。如果双方的 NAT 类型允许、UDP 通道能打通,那么画面和操作数据直接互传,完全不占用中继服务器的带宽。只有当打洞失败,例如有一方处在严格的对称型 NAT 后面,才会自动降级走 hbbr 中继转发。
这个机制意味着,自建中继服务器的带宽规格并不需要太大。哪怕你的设备都在不同内网,大多数情况下打洞都能成功,中继服务器只是“保底”。但前提是 hbbs 这个“介绍人”必须在公网上稳定在线,否则双方连互相发现都做不到。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 拆开看服务端:hbbs 与 hbbr 的分工及端口背后的逻辑
接触 RustDesk 服务端时,你会看到两个高频名词:hbbs 和 hbbr。它们不是两个独立软件,而是同一个 rustdesk-server 包里的两个进程。我第一次部署时也搞混过,这里用最直白的话拆开讲。
2.1 hbbs 是“登记处”,hbbr 是“中转仓库”
hbbs 全称是 RustDesk ID/Relay Server 中的 ID Server 部分,负责维护哪些设备在线、设备 ID 与其当前网络地址的对应关系。客户端启动后会定时向 hbbs 上报自己的 ID 和地址,就像去酒店前台登记入住信息。控制端发起远控时,会先问 hbbs:“这个 ID 对应的设备现在在哪?”hbbs 查到后把地址信息返回给控制端,双方尝试直接连线。
hbbr 则是真正的中继转发进程。当两台设备无法直接互通时,控制端和被控端都会主动连到 hbbr,由 hbbr 把一边收到的画面数据、控制指令转发给另一边。你可以把 hbbr 想象成一个快递中转站,货不直接送到收件人手里,先集中到中转站再分发。
明白了这一层,你就知道单台服务器部署时为什么建议同时跑这两个进程:hbbs 解决“找到对方”的问题,hbbr 解决“找不到对方时怎么传数据”的问题。缺了 hbbs,客户端无法完成 ID 注册;缺了 hbbr,所有打洞失败的场景都会直接断连。
2.2 端口清单:21115 到 21119 各管一段
RustDesk 服务端默认使用的端口是连续的 21115-21119,很多部署失败
