欢迎来到威聚,大家如果有需要哪个项目编译好的软件但无法自己下载可以进入项目推荐页面告诉我,我上传到网盘供大家下载使用!
威扬盘搜

RustDesk

运维 Rust AGPL-3.0 Rust 人工编写 推荐 ★5 中等

更新于 2026-10-28 20:16:20

这是什么

RustDesk 是目前最成熟的开源远程桌面方案之一:客户端 + 服务端全开源,用 Rust 写主体(界面层是 Flutter),定位非常明确——"为自建而生"的 TeamViewer / AnyDesk 替代品。12.7 万星、2 万 fork、3000 万+ 客户端下载量,是这个赛道里唯一能打的 AGPL 项目。

和其它开源远程桌面(VNC、Guacamole 之类)最大的差别是:它自带 NAT 穿透,不需要你有公网 IP、也不用在路由器上做端口转发。局域网、公司内网、家里的电脑,只要双方都连到同一台 ID 服务器,多数情况下直接点对点打通。

⚠️ 官方明确提醒:rustdesk.com 是唯一官方域名,其它域名下的"RustDesk 下载"一律不要用。

先认清一个前提:自建才有"完全掌控"

官方提供免费的公共中继服务器,但带宽有节制、不保证质量,只适合试用。真要日常用,自建一套 hbbs + hbbr 才是这个项目的正确打开方式:ID 注册、信令、中继全在你自己的机器上,画质和延迟自己说了算,也不再依赖任何第三方 SaaS 的可用性。

整套东西对服务器的要求很低——1 核 1G 的 VPS 就能跑,因为绝大多数流量走的是 P2P 直连,服务器只在打洞失败时才被迫当中继。

服务端只有两个二进制

  • hbbs:ID(rendezvous / 信令)服务器。每台在线的 RustDesk 都在这里持续上报自己的 IP 和端口,建立连接时由它撮合。
  • hbbr:中继服务器。打洞失败时,两端的数据从这儿过。

端口表(自建必看)

端口 协议 用途
21115 TCP NAT 类型检测
21116 TCP + UDP UDP 负责设备注册与心跳,TCP 负责打洞与连接(两个都要开)
21117 TCP 中继服务(hbbr)
21118 / 21119 TCP Web 客户端用的 WebSocket,不用 web 端可以关掉
21114 TCP 只有 Pro 版用到(HTTP API / Web 控制台)

21115–21117 是能跑起来的最小集合。 官方文档原话是"一般建议把这些端口全开"。

三条命令装好(Docker Compose,最省心)

wget rustdesk.com/oss.yml -O compose.yml
docker compose up -d

官方 compose 里会把 network_mode: "host" 打开——这不是可选项。只有宿主网络模式,hbbs/hbbr 才能看到客户端的真实 IP 而不是 Docker 内网的 172.17.0.1,打洞才可能成功。也正因为如此,用了 host 网络就不需要写任何 -p 端口映射。

手工起两个容器也就两行:

docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs
docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr

首次启动会在 ./data 下生成一对 id_ed25519 / id_ed25519.pub 密钥,这个公钥一定要留下来,后面客户端要填。

如果你想让所有流量都强制走中继(比如两端网络策略不允许直连),给 hbbs 加环境变量 ALWAYS_USE_RELAY=Y 即可。

客户端怎么填

主界面 ID 右边的 ⋮ → 网络(Network),需要用管理员/提权解锁设置:

  • ID 服务器:填你的 hbbs 域名或 IP(必填)
  • 中继服务器:一般留空,客户端会自动推断
  • Key:把 ./data/id_ed25519.pub 的内容贴进去(必填,否则连不上你自己的服务器)
  • API 服务器:只有 Pro 版登录账号、用通讯录时才需要

注意这个 Key 是连接加密用的公钥,不是 Pro 版买来的 License Key,别搞混。

批量部署时可以用导出配置再导入,或者直接走命令行 --config 字符串,不用一台台手点。

客户端能干什么

装完就能用,功能上基本对得起"替代 TeamViewer"这句话:

  • 双向剪贴板、文件传输、多显示器切换、画面质量/帧率手动调
  • 无人值守:设一个永久密码,对方随时能连进来(远程办公 / 运维救火必备)
  • Wayland 预览版:x86_64 Debian / Ubuntu 系已经能做到无人值守接入,并且覆盖多屏和重启后的登录界面——这是 Wayland 下远程桌面最难啃的部分
  • 平台覆盖 Windows / macOS / Linux / Android,外加自托管 Web 客户端(浏览器里直接连,不用装软件)

1.5.0 的几个变化

当前最新版本 1.5.0(2026-09-30),官方博客的标题就写了重点:

  • 新增 WebRTC 直连通道——多一条建立直连的路径,打洞成功率更高
  • Web 客户端可以直连,不必事事兜到中继
  • QoS 调整:延迟、拥塞、帧率目标重新处理,弱网下的观感更稳

OSS 版 vs Pro 版

Server OSS Server Pro
内容 hbbs + hbbr,社区支持 加 Web 控制台、API、OIDC / LDAP / 2FA、访问控制、多中继管理、自定义客户端生成器
适合 个人、小团队、技术型自建 有合规/审计/集中管理需求的企业

代码是 AGPL-3.0,Pro 是商业授权。 个人和小团队用 OSS 完全够,不用纠结。

几个必须知道的坑

  1. WebSocket 端口的 IP 伪造风险。官方文档专门发了警告:开了 21118/21119 之后,hbbs/hbbr 会信任 WebSocket 连接带上来的 X-Real-IP / X-Forwarded-For 头来判断客户端真实 IP,而这些头没有做校验。任何人只要能直连这两个端口,就能伪造任意 IP,绕过基于 IP 的限流和封禁,也能污染日志里的 IP 记录。正确做法:只通过会自己覆写 X-Real-IP 的反向代理暴露 WSS,并用防火墙限制 21118/21119 只允许代理访问;不用 web 客户端就直接关掉。
  2. UDP 21116 经常是被忽略的那个。只开 TCP 会导致设备注册不上、或者能连但是打洞永远失败、全部退化到中继。
  3. 中继很吃带宽。P2P 成功时服务器几乎不耗流量,一旦退化成中继,画面流量全从你的 VPS 走,按流量计费的机器要留意。
  4. 首次装完立刻设永久密码并改成强密码,别用默认的临时密码长期放公网。ID 是公开可枚举的 9 位数,安全性完全压在密码和密钥上。
  5. 只从 rustdesk.com 或 GitHub Releases 下载,第三方站点的"汉化版/绿色版"有被植入的风险。

适用场景

  • 自建远程办公:家里/公司各一台常开机器,永久密码 + 自建服务器,不依赖任何第三方
  • IT 运维与技术支持:给客户/同事远程排障,比 TeamViewer 免费版不弹"疑似商用"
  • 内网穿透式管理:一堆没公网 IP 的设备,统一挂到自己的 hbbs 上
  • 对数据合规有要求的团队:连接元数据和画面流量都不出自己机房
  • 替代 VNC:自带 NAT 穿透 + 现代编码 + 内置加密,比裸 VNC + 端口转发省事太多

二开与商业使用

  • AGPL-3.0 是最需要留意的点:如果你修改了 RustDesk 并以网络服务的形式提供给外部用户,AGPL 要求你同样开放修改后的源码(包括服务端)。纯内部自用不受这条约束。
  • 想换品牌、预置服务器、做签名版客户端而不想开源改动,官方卖 Pro 的自定义客户端生成器(支持 Windows x64、macOS arm64/x64、Linux、Android arm64)——这是"闭源定制"的合法路径。
  • 中文社区文档很全(官方文档站有简体中文),Docker 部署、Synology(DSM 6 / 7.2)、Windows + PM2/NSSM 都有对应教程,自建基本不用自己踩。

相关链接

  • 官网与下载:https://rustdesk.com
  • 自建文档:https://rustdesk.com/docs/zh-cn/self-host/
  • GitHub 仓库:https://github.com/rustdesk/rustdesk

一句话总结

一个自带走服务器端、自带 NAT 穿透、连 Wayland 登录界面都能啃的开源远程桌面——只要一台 1 核 1G 的 VPS,你就能把 TeamViewer 彻底换掉。

按更新时间依次阅读