
自托管自己的远程桌面中继可以让您拥有数据主权且没有持续费用,但这需要付出 DevOps 的额外开销。以下内容描述了运行 RustDesk、MeshCentral 或 Apache Guacamole 所需的实际情况,以及在何时自托管是值得的。
“自托管远程桌面”通常指两种情况:为类似 RustDesk 的工具托管自己的 中继/会合基础设施,或托管整个基于 Web 的远程访问平台,例如 Apache Guacamole 或 MeshCentral。这两种方法都是合理的选择,但它们有不同的权衡。本文将探讨为什么您可能会选择自托管、该领域内的三种主要工具、操作开销的实际情况,以及在何时自托管比使用托管服务更好。
简而言之:如果您有严格的数据主权要求(GDPR、受监管行业、仅限内部部署),如果您希望在大规模下没有持续的许可费用,或者如果您确实更喜欢运行自己的基础设施,那就选择自托管。如果您是一个没有专职 DevOps 的小团队,如果您需要采购准备好的认证,或者如果您宁愿以每月 7.99 美元的费用解决问题,则可以跳过自托管。
为什么要自托管?
数据主权
组织自托管的首要原因。如果您受 GDPR、HIPAA 或特定行业法规(德国银行、法国政府、国防承包商)的约束,通过第三方 SaaS(即便是具有强加密的服务)传输远程桌面会话可能无法满足审计员的要求。在您拥有(或租用)基础设施上自托管,可以完全消除对第三方的依赖。即使我们的托管中继仅能看到密文,"中继什么也看不见,因为我们运行的是中继" 是一个更强的合规立场。
仅限内部的部署
如果您的远程桌面流量不应离开您的网络——例如,某个与互联网隔离的工业控制系统,或具有严格出境过滤的医院局域网——托管的云服务在结构上是不合适的。您需要一个仅限于您当地网络的中继,只有您授权的设备才能访问。
规模下的成本
对于非常大的部署(1000 个以上端点),按座位计费的托管价格相加会很可观。在每月 40 美元的 VPS 上运行的自托管中继可以在您的带宽允许的情况下承载数千个同时会话。与托管定价的盈亏平衡点取决于工具,但在 MSP 和企业规模下,自托管在原始成本上更具优势。
定制和控制
自托管让您可以在遵循 AGPL-3.0 义务的基础上修改源代码、根据自己的品牌进行定制而无需支付白标费用,并将中继行为调整为适应您的特定网络拓扑。
您接受的权衡
自托管并不是免费的。费用体现在 DevOps 的额外开销上,而不是每月的美元。具体来说:
- 服务器配置和维护:您需要一台具有公共 IP 的 Linux 服务器(以确保中继可达),需要监控、日志轮换、操作系统补丁,可能还需要备份基础设施。预计每月正常维护需要 2-4 小时,事故发生时可能更多。
- NAT 和防火墙配置:中继需要能够通过特定端口(RustDesk 默认配置的 21115-21119)从互联网访问。如果您在 NAT 网络上运行,您需要从边缘到中继主机进行端口转发。
- 证书管理:如果您想在管理界面上使用 TLS(您应该使用),则需要 Let's Encrypt certbot 或类似工具。每 60-90 天进行一次自动化续订,使用 cron。
- 容量规划:单个中继可以处理大量流量,但在某个时候,您需要第二个中继,然后是负载均衡。您现在成为了基础设施团队。
- 没有供应商支持:当凌晨 2 点出现故障时,没有支持热线。您需要自己进行调试,或等待社区醒来。
三款主要工具
RustDesk(及其分支,例如 GoDesk)
架构上最简单的两者。两个二进制文件:hbbs(会合服务器,约 30 MB RAM)和 hbbr(中继,约 50 MB RAM)。这两个都是没有外部依赖的静态 Rust 二进制文件。设置大致如下:
# 在 Linux VPS 上,配备公共 IP
wget https://github.com/rustdesk/rustdesk-server/releases/latest/download/rustdesk-server-linux-amd64.zip
unzip rustdesk-server-linux-amd64.zip
# 启动 hbbs(会合)和 hbbr(中继)作为服务
sudo ./hbbs -r your.public.ip
sudo ./hbbr
# 打开端口 21115/tcp,21116/tcp+udp,21117/tcp,21118/tcp,21119/tcp
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
# 将客户端指向您的服务器:在客户端设置中,
# ID 服务器 = your.public.ip,中继服务器 = your.public.ip,
# 公钥 = (首次启动时由 hbbs 打印,或查阅 id_ed25519.pub)资源占用极小——一个每月 5 美元的 DigitalOcean Droplet 可以处理数十个同时会话。官方的 RustDesk Pro 服务器(收费)增加了 Web 管理控制台、审计日志、LDAP/OIDC 和用于大型部署的中介式功能。
Apache Guacamole
不同的架构:Guacamole 是一个无客户端的 HTML5 Web 应用程序。用户通过浏览器连接;Guacamole 的后台 (guacd) 将 RDP、VNC 和 SSH 转换为 HTML5 画布/WebSocket 流。用户端无需安装本地客户端,这对于无法在控制机器上安装软件的支持工作流程非常有用。
运营复杂性比 RustDesk 更高:Guacamole 作为 Java + Tomcat 运行,并配备一个用于用户/连接管理的数据库(MySQL 或 Postgres),加上 guacd 守护进程。Docker Compose 安装大大简化了这一过程,但您运行的是 3-4 个容器,而不是 2 个二进制文件。
如果您特别想要无客户端软件的浏览器访问,Guacamole 是正确的选择。如果您想要一种能够在两端点之间直接处理 NAT 穿透的工具,那么 Guacamole 不是合适的选择——Guacamole 假设您已经可以通过 RDP/VNC/SSH 从 Guacamole 服务器访问目标机器。
MeshCentral
MeshCentral 是 Ylian Saint-Hilaire(曾在英特尔工作)基于 Node.js 的远程管理平台。它支持远程桌面、文件传输、终端、Web 控制台以及车队管理 UI。在架构上,它是一个单一的 Node 应用程序 + 数据库(默认使用 NeDB,可选 Postgres),可以通过 HTTPS 访问。
MeshCentral 更多是一个车队管理工具,而不是一个纯的远程桌面中继——可以将其视为 RustDesk + 设备清单 + Web 管理 UI。设置过程简单(一个 npm install + 配置文件),一些大型组织(包括英特尔)已经在生产环境中使用了它。
MeshCentral 的不足之处在于:用户界面复杂且不够精致,移动客户端的功能不如 RustDesk 强大,桌面流媒体的编解码器/性能优化程度不如 RustDesk 或 AnyDesk。当您想要一个统一的 Web 管理控制台来管理一组设备时,它是最合适的,但作为单一用途的远程桌面工具则不太理想。
自托管 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 维基有参考单元;我们在 帮助中心 保持一个已知良好的副本。 - 获取由 hbbs 在首次启动时打印的公钥。将其与服务器主机名一起分发给您的客户端。
- 配置客户端:在 GoDesk 客户端设置中,设置 ID 服务器、中继服务器和公钥。客户端现在使用您的中继,而不是我们的。
- 可选:通过 Caddy 终止 TLS,如果您想在 443 上提供 Web 管理控制台(RustDesk Pro),并使用自动续订的 Let's Encrypt 证书。
在新 VPS 中总共耗时:首次大约 30 分钟,如果您之前做过,则为 10 分钟。持续维护:每周 apt update && apt upgrade,观察中继日志,若出现内存泄漏(罕见)则重启。有关 Linux 部署的具体信息,请参见我们的 Linux 平台页面。
GoDesk 对自托管的看法
我们允许您在付费套餐中自托管中继——如果您希望这样做。Pro 套餐客户端默认配置为连接我们的托管中继,但您可以随时在设置中切换到您自己的中继。没有 "企业内部组件" 的限制。这是出于故意:AGPL-3.0 许可证赋予您自托管的权利,我们希望保持这一现实。
大多数用户并不在意。我们的托管中继可以正常运行,拥有全球的 PoP,并包含在基础订阅中。如果您的数据主权故事要求“路径中没有任何第三方中继”,请自托管。否则,节省 DevOps 时间,使用托管中继——这就是订阅为您带来的服务。有关运行在任一部署下的完整安全架构,请参见我们的 安全页面。
何时自托管是不明智的选择
- 您是一个没有 DevOps 能力的小团队。维护开销是真实的。如果您没有人承担“修补 Linux 服务器”的工作,自托管就是一种持续的负担。
- 您需要供应商纸质采购。审核员要求 SOC 2 报告时,不会接受“我们运行自己的服务器”作为答案。具有正式认证的托管服务在这里更容易获得。
- 您只有 5-20 个端点。自托管与每月 7.99 美元的托管计划的盈亏平衡点在几百美元的 DevOps 时间节省上。在 20 个端点下,托管显然更便宜。
- 您这样做是为了节省单个座位的成本。每月 5 美元的 VPS 加上每月 2 小时的管理时间,按照任何合理的时薪计算,已经超过了托管的单个座位成本。
结论
自托管远程桌面是一个真正的选项,对于某些组织来说,确实适合他们。RustDesk(及其分支,例如 GoDesk)是最简单的自托管方案;Guacamole 是针对浏览器访问的最佳选择;MeshCentral 是通用的车队管理工具。权衡始终是 DevOps 时间与金钱之间的权衡。如果您有数据主权的要求,请自托管。如果您每月有 7.99 美元,更愿意将精力用于产品而非运营,使用托管中继。查看定价或 下载 GoDesk,首先尝试托管流程——您随时可以通过更改一行配置迁移到自托管。
常见问题
我可以自托管中继,仍然使用 GoDesk 的客户端 UI / 账户吗?
可以。请在设置中将客户端指向您的中继。依赖 GoDesk 控制平面的账户功能(计费、团队管理)仍然有效;只有会话流量会移动到您的中继。
自托管的 RustDesk 中继需要什么硬件?
一台小型 VPS:1 个 vCPU,1 GB RAM,1 TB/月带宽可以处理数十个同时会话。Hetzner CX11、DigitalOcean 基础版或 AWS t4g.nano 都可以。带宽通常是规模上的限制,而不是 CPU。
自托管的 RustDesk 支持 2FA / SSO 吗?
免费的开源服务器(hbbs/hbbr)不支持。RustDesk Pro 服务器(收费,单独许可证)增加了 Web 控制台、OIDC 和审计日志。GoDesk 的托管 Pro 套餐内置 2FA。
我可以在 AWS Lightsail / Cloudflare 等上托管中继吗?
任何具有公共 IPv4 和打开自定义 UDP/TCP 端口能力的提供商都可以使用。Cloudflare 的标准代理仅在端口 443 终止 TCP;您将需要使用 Cloudflare Spectrum(收费)或专用 TCP 监听器来处理 RustDesk 的端口。
自托管与 GDPR 如何互动?
如果您的中继位于欧盟,并且您的数据从未离开它,则不适用 GDPR 跨境转移规则。这是欧盟公共部门和医疗保健部署选择自托管的最大原因。