SubnetDesk:局域网远程桌面的轻量之选
你是否受够了远程桌面工具强制要求你注册云账号、配置中继服务器?如果你家有一台家庭实验室设备,或办公室内网互通,SubnetDesk 可能正是你要找的工具。
SubnetDesk —— 一个专注局域网的远程桌面客户端,RustDesk 的精简分叉,378 ⭐,AGPL-3.0 开源协议。
为什么需要 SubnetDesk
RustDesk 本身是一个优秀的开源远程桌面方案,但它的定位是「跨互联网 + 局域网」的通用场景。这意味着它默认依赖公网信令服务、中继服务器,甚至引导你注册云账号。
但对于以下场景,这些功能完全是负担:
- 家庭实验室内的设备互访
- 办公室内网统一管理的电脑
- 教室多屏管控
- 已通过 WireGuard / Tailscale / OpenVPN 打通的私网
SubnetDesk 的核心思路很简单:既然设备已经能互相通信,为什么还要绕道公网?
核心功能与亮点
SubnetDesk 剥离了所有公网相关依赖,只保留最实用的功能:
- mDNS 局域网自动发现 —— 装好就能看见附近设备,无需手动输入
- IP / 主机名直连 —— TCP 端口可配置,默认 21118
- 账号密码认证 —— Argon2id 哈希存储,不存明文
- 设备指纹验证 —— Trust-on-First-Use 机制,防止中间人劫持
- CIDR 网络白名单 —— 限制允许接入的来源网段
- 完整远程控制体验 —— 剪贴板共享、音频、文件传输
相比典型 RustDesk 部署,它的优势一览无余:
| 对比项 | SubnetDesk | 典型 RustDesk |
|--------|-----------|--------------|
| 连接方式 | 直接 IP/主机名 | 设备 ID + 信令服务 |
| 设备发现 | mDNS 自动 | 设备 ID 或地址簿 |
| 服务依赖 | 无需协调服务器 | 需要信令/中继 |
| 适用场景 | 局域网 / 私网 / VPN | 互联网 + 跨 NAT |
安全模型与快速上手
SubnetDesk 的安全设计强调「最小暴露」原则:
数据始终沿设备间可达的网络路径传输,不经过任何公网协调服务。
具体包括:密码以 Argon2id 哈希持久化、首次信任指纹验证、CIDR 白名单限制来源网络。
### 快速开始
- 两台设备安装并打开 SubnetDesk
- 被控端 → LAN 设置 → 设置用户名密码 → 开启局域网发现(端口 21118)
- 控制端 → 选择已发现设备,或手动输入
IP:端口 - 首次连接核对设备指纹 → 连接
网络检查清单:
- 两台设备路由可达
- 防火墙放行 TCP 21118
- mDNS 可用(不可用时仍可手动输入地址直连)
- 被控端 CIDR 白名单包含控制端网段
### 同类对比
| 工具 | 定位 | 与 SubnetDesk 的关系 |
|------|------|---------------------|
| RustDesk | 通用远程桌面 | SubnetDesk 的精简分支 |
| Tailscale + SSH | 远程访问 + 命令行 | 无图形界面 |
| NoMachine | 高性能远程桌面 | 商业组件,功能更重 |
| Apache Guacamole | HTML5 无客户端远程桌面 | 需自部署后端服务 |
小结
如果你已经有内网互通的设备,不想折腾 RustDesk 的信令/中继服务器,SubnetDesk 是一个干净的零配置选择——装上就能用,mDNS 自动发现,直连即走。
源码构建同样简单:git clone --recurse-submodules + ./build.py --flutter --hwcodec,适合想在 Linux 上自行打包的用户。