
自托管远程桌面中继能保证数据主权并免除持续费用,但需要承担 DevOps 运营成本。本文介绍运行 RustDesk、MeshCentral 或 Apache Guacamole 的实际工作量,以及何时值得自托管。
“自托管的远程桌面”通常有两种含义之一:托管你自己的 中继/ rendezvous 基础设施(用于像 RustDesk 这样的工具),或托管一个完整的基于网页的远程访问平台,例如 Apache Guacamole 或 MeshCentral。两者都是合理的方案,但权衡不同。本文逐项说明你为什么可能要自托管、本领域三款重要工具的差别、实际的运维开销是什么样子、以及何时自托管真正优于使用托管服务。
要点:如果你有严格的数据主权要求(GDPR、HIPAA、或受监管行业、仅限内部部署),如果你希望在大规模下实现零持续许可费用,或如果你确实偏好运行自己的基础设施,就自托管。若你是没有专职 DevOps 的小团队、需要采购合规证书,或更愿意每月付 $7.99 来把问题交给别人解决,则不要自托管。
为什么自托管?
数据主权
组织自托管的首要原因。如果你受 GDPR、HIPAA 或行业特定法规约束(德国银行、法国政府、国防承包商等),即便第三方 SaaS 提供了强加密,将远程桌面会话绕过第三方服务仍可能不被审计人员接受。在你自己拥有(或在你可控区域租用)的基础设施上自托管可以完全消除第三方依赖。我们的托管中继会终止 TLS,因此“中继是我们的”在合规上比把该角色交给别家要实质性地更强。
仅限内部部署
如果远程桌面流量不能离开你的网络,例如物理隔离(air-gapped)的工业控制系统,或具有严格出站过滤的医院局域网,托管云服务在结构上就不合适。你需要一个位于局域网内、仅经授权设备访问的中继。
规模化成本
对于非常大的部署(1000+ 端点),按席位收费的托管定价会很快累加。运行在 $40/月 VPS 上的自托管中继,如果带宽允许,可以承载数千个并发会话。与托管定价的盈亏平衡取决于所用工具,但在 MSP 和企业规模上,自托管在原始成本上通常更有优势。
定制与控制
自托管允许你在 AGPL-3.0 的义务下修改源代码、在不支付白标费用的情况下自定义品牌,以及根据你的特定网络拓扑调优中继行为。
你要接受的权衡
自托管不是免费的。成本以 DevOps 运维开销体现,而不是每月账单。具体包括:
- 服务器配置与维护:你需要一台具有公网 IP 的 Linux 服务器(以保证中继可达)、监控、日志切割、操作系统补丁,以及可能的备份基础设施。稳定状态下请预计每月 2−4 小时的维护时间,发生事件时会更多。
- NAT 与防火墙配置:中继需要在特定端口上可被互联网访问(RustDesk 默认配置使用 21115-21119)。若你在 NAT 网络中运行,需要从边界设备向中继主机做端口转发。
- 证书管理:如果你想为管理界面启用 TLS(建议启用),需要使用 Let's Encrypt certbot 或类似工具。证书每 60−90 天续期一次,应通过计划任务自动化。
- 容量规划:单个中继能处理大量流量,但在达到上限后你需要增加第二台、然后做负载均衡。这时你已经是一个基础设施团队了。
- 无厂商支持:当夜里 2 点出现故障,没有支持电话可以打。你要自己排查或等社区响应。
三款主要工具
RustDesk(以及像 Tenvo 这样的分支)
三者中架构最简单。两个二进制文件:hbbs(rendezvous 服务器,约 ~30 MB 内存)和 hbbr(中继,约 ~50 MB 内存)。两者都是静态 Rust 二进制文件,无外部依赖。大致部署步骤如下:
# On a Linux VPS with a public IP
wget https://github.com/rustdesk/rustdesk-server/releases/latest/download/rustdesk-server-linux-amd64.zip
unzip rustdesk-server-linux-amd64.zip
# Start hbbs (rendezvous) and hbbr (relay) as services
sudo ./hbbs -r your.public.ip
sudo ./hbbr
# Open ports 21115/tcp, 21116/tcp+udp, 21117/tcp, 21118/tcp, 21119/tcp
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
# Point clients at your server: in client settings,
# ID Server = your.public.ip, Relay Server = your.public.ip,
# Public Key = (printed by hbbs on first start, or check id_ed25519.pub)资源占用极小,$5/月 的 DigitalOcean droplet 就能处理数十个并发会话。官方的 RustDesk Pro 服务器(付费)增加了网页管理控制台、审计日志、LDAP/OIDC,以及面向大型部署的经纪人式功能。
Apache Guacamole
架构不同:Guacamole 是无客户端(clientless)的 HTML5 Web 应用。用户通过浏览器连接;Guacamole 的后端(guacd)将 RDP、VNC、SSH 转换为 HTML5 canvas/WebSocket 流。不存在需要在控制端安装本地客户端的情况,这对无法在控制机器上安装软件的支持场景非常有用。
运维复杂度高于 RustDesk:Guacamole 以 Java + Tomcat 运行,并需要一个数据库(MySQL 或 Postgres)来管理用户/连接,外加 guacd 守护进程。Docker Compose 可以大大简化部署,但你要运行 3−4 个容器,而不是 2 个二进制文件。
如果你明确需要基于浏览器的访问且不想安装客户端,Guacamole 是正确的选择。若你希望工具能开箱直接在两个端点之间处理 NAT 穿透,则 Guacamole 并不合适——Guacamole 假定服务器已经能通过 RDP/VNC/SSH 访问目标机器。
MeshCentral
MeshCentral 是由 Ylian Saint-Hilaire(曾在 Intel 工作)开发的基于 Node.js 的远程管理平台。它支持远程桌面、文件传输、终端、网页控制台和设备群管理 UI。从架构上看是一个单一的 Node 应用 + 数据库(默认 NeDB,可选 Postgres),通过 HTTPS 可达。
MeshCentral 更像是一个群设备管理工具,不是纯粹的远程桌面中继。可以把它看作是 RustDesk + 设备资产清单 + 网页管理界面。安装相对简单(一个 npm install + 配置文件),并且已被包括 Intel 在内的一些大规模组织投入生产使用。
MeshCentral 的短板在于:界面信息密集且不够打磨,移动客户端不如 RustDesk 强大,桌面流媒体的编码/性能也不如 RustDesk 或 AnyDesk 优化。它在需要统一网页管理控制台来管理设备群时表现最佳,作为单一远程桌面工具则不那么理想。
自托管 RustDesk 中继的实际样子
在 Hetzner CX11($4/月)上运行 Ubuntu 24.04 VPS 的逐步操作:
- 配置 VPS,分配一个公网 IPv4。设置强密码并启用 SSH 密钥认证。
- 打开防火墙:
sudo ufw allow OpenSSH sudo ufw allow 21115:21119/tcp sudo ufw allow 21116/udp sudo ufw enable - 从 GitHub 发布页面安装 RustDesk 服务器二进制文件,将其放到
/opt/rustdesk-server/下。 - 为
hbbs和hbbr创建 systemd 单元文件,以便重启时自动启动。RustDesk Wiki 有参考单元;我们在 帮助中心 保留了一份已验证可用的副本。 - 获取公钥,hbbs 首次启动时会打印公钥。将其分发给客户端,并同步服务器主机名。
- 配置客户端:在 Tenvo 客户端设置中,填写 ID Server、Relay Server 和 Public Key。客户端此后会使用你的中继而非我们的中继。
- 可选:通过 Caddy 做 TLS 终止,如果你想在 443 上为网页管理控制台(RustDesk Pro)提供服务并自动续期 Let's Encrypt 证书。
在一台全新 VPS 上的总耗时:首次约 30 分钟,若熟悉流程则约 10 分钟。后续维护:每周运行 apt update && apt upgrade、监控中继日志、在出现内存泄漏时重启(罕见)。有关 Linux 部署细节,请参阅我们的 Linux 平台页面。
Tenvo 关于自托管的立场
我们允许你在付费等级下也自托管中继,如果你愿意。Pro 级别客户端默认配置为连接我们的托管中继,但你可以随时在设置中切换到你自己的中继。没有所谓的“企业本地部署附加组件”门槛。这是刻意为之:AGPL-3.0 许可赋予你自托管的权利,我们希望这项权利是真实可用的。
多数用户并不选择自托管。我们的托管中继工作稳定、拥有全球 PoP,并包含在基础订阅中。如果你的数据主权需求要求“路径上绝对没有第三方中继”,就自托管。否则,省下 DevOps 时间并使用托管中继——这就是订阅为你买到的东西。有关两种部署下运行的完整安全架构,请参阅我们的 安全页面。
何时自托管是错误的决定
- 你是没有 DevOps 能力的小团队。维护开销是真实存在的。如果你的团队中没有人明确负责“给 Linux 服务器打补丁”,自托管将成为一项持续的税费。
- 你需要供应商级别的采购文件。审计人员要求 SOC 2 报告时,不能仅以“我们自己运行服务器”作为回应。拥有正式认证的托管服务在这方面更容易满足需求。
- 你只有 5−20 个端点。与 $7.99/月 的托管计划相比,自托管的盈亏平衡通常无法覆盖。以 20 个端点计算,托管无可争议地更便宜。
- 你仅为单席位追求成本节省。一个 $5/月 的 VPS 加上每月 2 小时的管理时间,在任何合理的小时费率下就已经比单席位的托管更贵。
结论
自托管远程桌面是一种可行的选项,对某些组织来说也是正确的选择。RustDesk(以及像 Tenvo 这样的分支)是最容易上手的自托管方案;Guacamole 适合基于浏览器的访问场景;MeshCentral 则是面向设备群管理的通用方案。权衡始终是 DevOps 时间与金钱的比较。如果你有数据主权要求,就自托管。若你愿意每月付 $7.99 并把时间用于产品而非运维,请使用托管中继。查看定价或下载 Tenvo,先尝试托管流程——你随时可以通过更改一行配置迁移到自托管。
常见问题
我可以自托管中继并仍然使用 Tenvo 的客户端 UI / 账户吗?
可以。在设置中将客户端指向你的中继即可。依赖 Tenvo 控制平面的账户功能(计费、团队管理)仍然可用;只有会话流量会走你的中继。
自托管的 RustDesk 中继需要什么硬件?
一个小型 VPS:1 vCPU、1 GB 内存、每月 1 TB 带宽能处理数十个并发会话。Hetzner CX11、DigitalOcean basic 或 AWS t4g.nano 都可用。通常在规模化时带宽是瓶颈,而非 CPU。
自托管的 RustDesk 支持 2FA / SSO 吗?
开源免费服务器(hbbs/hbbr)不支持。RustDesk Pro 服务器(付费、单独授权)增加了网页控制台、OIDC 与审计日志。Tenvo 的 Pro 托管等级开箱即含 2FA。
我能把中继托管在 AWS Lightsail / Cloudflare / 等等吗?
任何提供公网 IPv4 且允许打开自定义 UDP/TCP 端口的供应商都可用。Cloudflare 的标准代理仅在 443 端口终止 TCP;你需要 Cloudflare Spectrum(付费)或一个专用的 TCP 监听器来处理 RustDesk 使用的端口。
自托管与 GDPR 如何交互?
如果你的中继位于欧盟且数据不出欧盟,则不涉及 GDPR 的跨境传输规则。这是欧盟公共部门与医疗机构选择自托管的最大原因之一。