Skip to content
项目

zibo-chen/SubnetDesk has 753 GitHub stars and 83 forks. GitHot measured +2 stars in 24 hours and +13 in 7 days. Last checked 2026-11-10 00:29 UTC. Last push 2026-10-31.

这些数字如何统计

LAN-only remote desktop based on RustDesk

753 星标83 forks +2 24小时

可以做什么

  • 🔎 - Local discovery - Find nearby devices automatically over mDNS.
  • ⚡ - Direct connections - Connect by IP address or hostname using a configurable TCP port.
  • 🔐 - Access protection - Authenticate with a username and password; passwords are stored as Argon2id hashes.
  • 🛡️ - Device verification - Verify and remember endpoint fingerprints before trusting a device.

实测星标增长

24小时
+2
7天
+13
15天
正在收集历史
1个月
正在收集历史

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

README.zh-CN.md

原文

SubnetDesk 图标

SubnetDesk

面向局域网的远程桌面:连接直接、部署简单、数据路径可控。

基于 RustDesk 独立维护,适用于局域网、可路由私网与 VPN。

最新版本 累计下载量 GitHub Stars GitHub Forks 构建状态 开源许可

Windows macOS Linux Android

English · 简体中文

项目定位 · 主要功能 · 下载安装 · 快速开始 · 源码构建

SubnetDesk 局域网设备发现

💡 为什么选择 SubnetDesk

SubnetDesk 专注于一个明确场景:让本身已经网络互通的设备直接进行远程控制。项目移除了 RustDesk 中的公网设备 ID、信令、中继、云账号、代理和公网自动更新等路径,改为直接连接目标地址,并自动发现局域网设备。

它适合家庭实验室、办公室、教室、现场运维,以及通过 WireGuard、Tailscale、OpenVPN 等 VPN 互通的私有网络。

SubnetDesk 典型 RustDesk 部署
连接方式 直接连接 IP 地址或主机名 通过设备 ID 和信令服务连接,可使用中继
设备发现 局域网 mDNS 自动发现 设备 ID 或地址簿
服务依赖 无需协调服务器 设备 ID 连接通常需要公网或自建信令/中继服务
适用场景 局域网、可路由私网、VPN 互联网和跨 NAT 访问

[!IMPORTANT] SubnetDesk 不提供公网信令或中继服务。两台设备必须位于同一局域网、可路由的私有网络,或通过 VPN 实现网络互通。

✨ 主要功能

功能 说明
🔎 局域网发现 通过 mDNS 自动发现附近设备。
⚡ 地址直连 使用 IP 地址或主机名直接连接,TCP 端口可配置。
🔐 访问认证 使用用户名和密码保护访问,密码以 Argon2id 哈希保存。
🛡️ 设备验证 首次连接时核对并保存设备指纹,降低误连风险。
🌐 网络白名单 通过 CIDR 网段限制允许接入的来源网络。
⭐ 快速重连 保存最近设备、收藏与稳定设备身份。
🖥️ RustDesk 体验 保留远程控制、剪贴板、音频和文件传输等能力,无需公网协调服务器。

📦 下载安装

稳定版本请前往 GitHub Releases 下载。希望体验最新改动时,可以使用 Nightly 版本 或 GitHub Actions 中的构建产物。

平台 架构 安装包
Windows x86_64、ARM64 .msi 安装包(推荐优先使用)、免安装/便携版 .exe
macOS Intel、Apple Silicon .dmg
Linux x86_64、ARM64 .deb、.rpm、.AppImage、.flatpak;另提供 x86_64 Arch 包
Android ARM64、ARMv7、x86_64、通用包 .apk

[!NOTE] Nightly 属于开发构建,日常使用建议优先选择最新稳定版本。

🚀 快速开始

  1. 在两台设备上安装并打开 SubnetDesk。
  2. 在被控端打开 LAN 设置,设置用户名和密码,并开启局域网发现。默认端口为 21118。
  3. 在控制端选择已发现的设备,或手动输入 主机名:端口 / IP:端口。
  4. 首次连接时核对设备指纹,确认无误后发起连接。

SubnetDesk LAN 设置

网络检查清单

  • 两台设备之间路由可达。
  • 主机防火墙已允许 TCP 21118 端口,或你自行配置的端口。
  • 自动发现需要网络支持 mDNS;即使 mDNS 不可用,仍可手动输入地址直连。
  • 被控端的 CIDR 白名单包含控制端所在网段。
  • Linux 用户可查看主机环境说明,了解 SELinux、Wayland 与登录界面的注意事项。

🔒 安全模型

  • 数据沿设备之间的可达网络路径传输,不依赖公网协调服务。
  • 密码使用 Argon2id 哈希保存,不以明文持久化。
  • 设备指纹采用首次使用信任机制,可帮助识别目标设备身份的异常变化。
  • CIDR 白名单可限制被控端接受连接的来源网络。

与其他远程控制软件一样,请只向可信网络开放监听端口,使用高强度且不重复的密码,并尽可能通过另一条可信渠道核对设备指纹。

会话数据、本地存储、更新请求和删除方式,请参阅 SubnetDesk 隐私政策(英文)。

🛠️ 从源码构建

拉取仓库及其子模块,然后执行 Flutter 桌面端构建:

git clone --recurse-submodules https://github.com/zibo-chen/SubnetDesk.git
cd SubnetDesk
./build.py --flutter --hwcodec

构建需要 Rust、Flutter 和对应平台的原生依赖。固定工具版本、目标架构和完整打包步骤以原生安装包工作流为准。

🤝 参与贡献

欢迎提交缺陷报告、功能建议和 Pull Request。开始修改前建议先查看现有 Issues,并尽量让改动保持聚焦,符合项目面向局域网与 VPN 的产品定位。

💬 交流社区

加入 SubnetDesk Discord 交流社区

欢迎加入 SubnetDesk Discord 交流社区。也可以扫描下方二维码添加我的微信,备注 SubnetDesk,我会拉你进入微信交流群。

添加 czb 微信,加入 SubnetDesk 交流群

🙏 致谢与许可

SubnetDesk 基于 RustDesk 开发并保留其开源基础。本项目独立维护,并非 RustDesk 官方发行版。

项目采用 GNU Affero General Public License v3.0 许可。请仅在自己拥有或已获授权的设备上使用远程控制功能。

探索相关项目