为什么需要自建中继服务器

我们在电脑或者手机上安装 RustDesk 的客户端后,需要联网去连接另一台设备(被控端),从而实现两台设备连通传输画面。但由于不同地区网络环境复杂,就需要服务端来帮助主控端找到被控端,并且实现连接。

中继服务器如何工作

  • hbbs - RustDesk ID(会合/信令)服务器,监听 TCP(21114 - 仅专业版的 http,21115、21116、21118 用于 web socket)和 UDP(21116)

  • hbbr - RustDesk 中继服务器,监听 TCP(21117、21119 用于 web socket)

  • 只要 RustDesk 在机器上运行,机器就会不断 ping ID 服务器(hbbs)以告知其当前 IP 地址和端口。

  • 当从计算机 A 启动到计算机 B 的连接时,计算机 A 联系 ID 服务器并请求与计算机 B 通信。
    然后 ID 服务器尝试使用打洞技术将 A 和 B 直接连接。
    如果打洞失败,A 将通过中继服务器(hbbr)与 B 通信。

  • 在大多数情况下,打洞是成功的,从不使用中继服务器。

所需端口

RustDesk 服务器自托管所需的端口很大程度上取决于您的环境以及您想用 RustDesk 做什么。

  • 核心端口:
    TCP 21114-21119​
    UDP 21116​

上述 21115-21117​ 是 RustDesk 工作所需的最小端口,这些处理信号和中继端口以及 NAT 穿越。

TCP 端口 21118​ 和 21119​ 是 RustDesk Web 客户端的 WebSocket 端口,您需要反向代理来使其支持 HTTPS。

对于没有 SSL 代理的专业版用户,您需要打开 TCP 端口 21114​ 以使 API 工作,或者使用 SSL 代理打开 TCP 端口 443​。

准备工作

  1. 首先需要一个正常运行的服务器,可以是购买的云服务器或是自建的服务器(如飞牛、群辉等)。我这里是在阿里云服务器端部署 Rustdesk 服务器端。

  2. 服务器端有 宝塔面板 或 1Panel面板,主要用来安装 Rustdesk 服务器端,我这里以宝塔面板演示。

  3. 主控和被控端安装好 Rustdesk 客户端并测试连接正常。

部署服务器端

  • 打开云服务器宝塔面板,在docker中搜索 rustdesk 安装。

  • 安装后在已安装中点击 Rustdesk 右侧的日志图标打开日志

找到 [src/rendezvous_server.rs:1191] key: 的字样,把后面的字符串拷贝下来备用。

  • 打开云服务器安全组设置,添加 Rustdesk 所需端口放行规则,其中 至少添加 21115、2116、21117 这三个,​注意:21116 必须同时添加 TCP 和 UDP 规则,否则无法打洞成功​。

客户端设置

在主控端和被控端设置 Ruestdesk 如下:

  • 添加ID/中继服务器参数

​如图所示:

ID服务器和中继服务器填写云服务器公网IP+对应端口

Key 填写刚才记录下来的 Rustdesk Key

如果控制的设备都是自己的,可以设置一个固定密码,这样在控制端就可以直接连接,不需要确认。如果发现连接延迟较大和卡顿,可以尝试使用「​强制走中继连接​」。

总结

这样就完成了客户端的服务器配置,现在我们就可以打开 RustDesk,主控端输入被控端的 ID 以及链接密码,就可以完成远程连接了,恭喜我们有了一个不限制任何功能、不限速、不降低画质的免费远程控制软件!