一、它到底解决什么
RustDesk 是一个用 Rust 编写、界面基于 Flutter 的开源远程桌面,定位是 TeamViewer 与 AnyDesk 的开源替代品。它覆盖 Windows、macOS、Linux、Android、iOS,核心能力就三件:远程控制对方桌面、双向文件传输、TCP 隧道。和你长期远程操控 Mac 的场景高度重合——一台机器在机房或家里,另一台手机或笔记本随时连进去。它和 ToDesk、向日葵这类商业软件最大的不同是:协议和服务端全部开源,你可以完全私有部署,不依赖任何厂商的账号体系和中继节点。
二、怎么把它跑起来
客户端最省事,三种拿法都来自官方 README:直接到发布页下载二进制(稳定版与 nightly 都在 GitHub Releases);Linux 走 Flathub,Android 走 F-Droid;或者自己编译,命令是 cargo run,前提是先备好 Rust 与 C++ 工具链,并用 vcpkg 装好 libvpx、libyuv、opus、aom。
vcpkg install libvpx libyuv opus aom cargo run
关键在第二步——自架服务器。RustDesk 的连线模型是:客户端先连 hbbs(ID 与握手服务器)拿到对方地址,能直连就走 UDP 打洞直连;打不通的部分,走 hbbr(中继服务器)转发。官方把这套服务端单独放在 rustdesk-server 仓库,同样是 AGPL-3.0、免费开源,编译后产出三个可执行文件:hbbs、hbbr、rustdesk-utils。
cargo build --release
hbbs 默认监听 21116,hbbr 默认监听 21117。在客户端里把中继服务器指向你自己的 hbbs 与 hbbr 地址,数据才真正不出你的网络。如果不做这一步,缺省就是连 RustDesk 官方的公共 hbbs 与 hbbr——直连部分不经过官方,但所有打洞失败、被迫走中继的会话,屏幕与输入数据都会经过官方中继节点。
三、好在哪、坑在哪
优点很硬。第一,全平台、单二进制、不捆绑任何账号体系,配好自架服务器后真的不用看厂商脸色。第二,协议透明、中继可自建,在局域网或合规内网里能彻底离线运行。第三,仓库几乎每天都有提交,移动端和 Wayland 支持都在持续跟进。
坑也得摆清楚,三条最实在。其一,许可证是 AGPL-3.0,不是更宽松的 MIT 或 Apache。对个人自用、纯自托管没有影响;但一旦你改了代码、又把它当作网络服务对外提供,就必须公开修改后的全部源码。想拿它做产品底座的人,这点要先算清楚。其二,免费的开源服务器相当裸。官方免费档只承诺在线状态查看与社区支持;2FA、审计日志、地址簿、Web 控制台、访问控制、SSO 与 LDAP、自定义客户端生成器这些团队真正需要的能力,全部在付费的 Server Pro 里。所以免费开源是真的,但生产可用是要付费许可的——典型的开源内核加付费扩展模型。其三,它是双用途工具。官方 README 开头就挂了一段 Misuse Disclaimer,明确不纵容未授权访问;社区里也有专门跟踪漏洞的 issue(编号 #14576)。所有开源远控都有被诈骗与恶意软件滥用的历史,部署时该做的访问控制、强密码、2FA 一步都不能省。
四、最后落到你身上
如果你只是偶尔连一下家里那台 Mac 传个文件,只装客户端、用官方公共中继,体验已经够顺,代价是部分会话流量经过官方节点。如果你要的是数据百分之百不出门——尤其是你这种长期远程操控 Mac 的场景——那就必须把 hbbs 与 hbbr 也架起来,这是唯一的完全私有路径。不适合的人群也很明确:想要开箱即用的企业级管理后台又不肯付 Pro 许可的团队;以及只想下载、不愿碰端口和证书的人。
动手前先把三件事想明白:端口 21116 与 21117 要在防火墙放行,hbbs 与 hbbr 都要跑起来;客户端务必填写你自己的中继地址,否则默认走官方;公网暴露中继节点之前,先上 2FA 与访问控制,千万别裸奔。
下期预告
自托管远控的另两条路——开源 VNC 与 RDP 方案、以及浏览器远控,横向对比端口、加密与移动端体验。
