🚀 搭建 RustDesk Server:打造属于自己的远程控制系统,替代 TeamViewer 和 ToDesk!

前言

在远程办公、技术支持、家庭协助等场景中,TeamViewer、ToDesk 等远程控制工具广受欢迎。但你是否也遇到过这些困扰:

  • 免费版限制越来越多?
  • 商业用途风险被封?
  • 数据中转经过第三方,安全性存疑?
  • 卡顿延迟

这里我们介绍一款开源、安全、免费的远程控制系统 ------ RustDesk ,只需要有一个公网 ip,就可以搭建自己的 RustDesk Server,完全替代传统远控工具!

为什么选择 RustDesk?

RustDesk 是一款用 Rust 开发的开源远程桌面工具,功能类似于 TeamViewer / ToDesk,但具有以下优势:

  • 自建服务器,数据全程私有化传输
  • 完全免费,无商业限制
  • ✅ 支持 Windows、macOS、Linux、Android、iOS 多平台
  • ✅ 支持文件传输、剪贴板共享、多窗口等丰富功能
  • ✅ 开源透明,安全可控

RustDesk

RustDesk github 地址:github.com/rustdesk/ru...

RustDesk server 如何工作?

安装好的 Rustdesk server 有两个可执行程序 hbbs 和 hbbr。

  • hbbs - RustDesk ID (rendezvous / signaling) server,监听 TCP(21114 - 仅适用于 Pro 中的 http,21115、21116、21118 用于 Websocket)和 UDP (21116)
  • hbbr - RustDesk 中继服务器,监听 TCP(21117、21119 用于 Web 套接字)

以下是 RustDesk 客户端如何与 hbbr / hbbs 通信流程图: github.com/rustdesk/ru...

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

当您启动从计算机 A 到计算机 B 的连接时,计算机 A 会联系 ID 服务器并请求与计算机 B 通信。

然后,ID 服务器尝试使用 hole punching 将 A 和 B 直接相互连接。

如果 hole punching 失败,A 将通过中继服务器(hbbr)与 B 通信。

在大多数情况下,hole punching 是成功的,并且从不使用中继服务器。

RustDesk server 安装

我们需要有一台有公网 ip 的云主机,推荐使用 Linux 系统。

可以使用官方的一键安装脚本也可以使用 docker 安装。

一键安装

bash 复制代码
wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh

安装成功后会在终端输出你的 rustdesk server IP/DNS 和 public key ,这两个需要配置到 RustDesk Client. 另外如果忘记 public key, 可以在/opt/rustdesk 目录查找以 .pub后缀的文件。

Docker compose 安装

创建配置目录

bash 复制代码
mkdir -pv  /data/rustdesk-server

创建 docker-compose.yaml

yaml 复制代码
networks:
  rustdesk-net:
    external: false

services:
  hbbs:
    container_name: hbbs
    ports:
      - 21115:21115
      - 21116:21116 # 自定义 hbbs 映射端口
      - 21116:21116/udp # 自定义 hbbs 映射端口
    image: rustdesk/rustdesk-server
    command: hbbs
    volumes:
      - $PWD/hbbs:/root # 自定义挂载目录
    networks:
      - rustdesk-net
    depends_on:
      - hbbr
    restart: unless-stopped
    

  hbbr:
    container_name: hbbr
    ports:
      - 21117:21117 # 自定义 hbbr 映射端口
    image: rustdesk/rustdesk-server
    command: hbbr
    volumes:
      - $PWD/hbbr:/root # 自定义挂载目录
    networks:
      - rustdesk-net
    restart: unless-stopped

启动服务

复制代码
docker-compose up -d

验证 hbbs,hbbr 容器是否正常运行

复制代码
docker ps

hbbs 容器第一次启动,会自动生成相关 key 文件在容器的/root 目录,你可在相应的挂载目录查看 public key 内容。

公有云安全组端口放行说明

在搭建 RustDesk Server 时,务必在对应云主机的控制台 安全组 中放行以下端口,以确保服务正常运行:

hbbs 服务所需端口

端口号 协议 说明
21114 TCP 用于 Web 控制台(仅专业版 Pro 可用)
21115 TCP 用于 NAT 类型测试
21116 TCP / UDP 必须同时启用 TCP 和 UDP,用于 ID 注册、心跳服务(UDP)以及 TCP 打洞、连接服务(TCP)
21118 TCP 用于支持 Web 客户端(可选)

hbbr 服务所需端口

端口号 协议 说明
21117 TCP 用于中继服务
21119 TCP 用于支持 Web 客户端(可选)

注意 :如果你不使用 Web 客户端功能,可以关闭 21118 和 21119 两个端口。

⚠️ 重点:21116 必须同时放行 TCP 和 UDP 协议!

另外云上的云主机默认镜像是不会启用系统防火墙,如果开启 iptables, firewalld 或者 ufw,记得也要放行。

Rustdesk 客户端安装配置

下载对应客户端安装包,安装运行后,RustDesk 客户端界面如下。

在你的 ID 右上角点击设置,选择网络。

点击解锁网络设置,输入密码验证成功后,然后点击 ID/中继服务器。填写两项:

  • ID 服务器:云服务公网 ip
  • Key:hbbs/id_ed25119.pub 内容

主控端和被控端的 ID/中继服务器都需要一样的配置。

连接测试

在主控端输入被控端的 ID 和一次性密码,也可以在被控端配置设置固定密码和 2FA。

我使用的云服务器是阿里云 2C2G 3M 带宽配置的 ECS,RustDesk 显示 Delay 平均在 30 ms 以下,体验非常好。比之前使用的 TeamViewer、ToDesk 好太多了。

相关推荐
啊阿狸不会拉杆2 天前
2026 年 7 月实测横评:UU 远程 / 向日葵 / ToDesk 三大远控对比,综合性能王实锤
远程工作·todesk·远程控制·向日葵·uu远程·软件测评
Splashtop高性能远程控制软件2 天前
聊天工具与专业远程支持软件:企业 IT 远程支持工具选型的五个评估维度
运维·远程工作·splashtop
wjql23 天前
远程工具下载教程 无界趣连2.0官网地址分享
远程工作
NexTunnel5 天前
公司老项目还在 SVN,远程维护怎么做更稳?
git·svn·gitlab·远程工作·nextunnel
Jurio.7 天前
Codex App SSH 远程开发教程:本地连接远程服务器项目
服务器·ssh·远程工作·codex
DolitD9 天前
场景驱动的技术选型—实时云渲染与远程桌面的对比结论
云原生·实时互动·图形渲染·远程工作
技术硬汉1 个月前
DL 平台:DeviceTouch远程维护实战(串口)
物联网·信息与通信·远程工作·iot
杜子不疼.1 个月前
2026年6月最新横评:UU远程 / ToDesk / 向日葵,免费版功能、画质、延迟全维度对比
远程工作
2601_961845421 个月前
高考真题试卷电子版|2025高考全科试卷分类下载
考研·面试·蓝桥杯·远程工作·程序员创富·高考
爱勇宝1 个月前
RustDesk 私有远程控制服务器部署
远程工作