SubnetDesk

zibo-chenAGPL-3.0活跃维护

基于 RustDesk 改造的局域网远程桌面,通过 mDNS 自动发现内网设备,无需公网和 VPN 即可直连,适合家庭实验室和注重隐私的自托管场景。

LAN-only remote desktop based on RustDesk

v1.3.0发布于 2026-08-27 16:33 UTC755star +7 / 7 天83fork同步于 2026-11-10 17:56 UTC

怎么上手

由 README 提炼,执行前请确认
git clone --recurse-submodules https://github.com/zibo-chen/SubnetDesk.git
cd SubnetDesk
./build.py --flutter --hwcodec
硬件要求按 README 说明

README 未说明显存或 CPU 要求;支持 Windows x64/ARM64、macOS Intel/Apple Silicon、Linux x86_64/ARM64、Android 多架构。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 RustDesk 的局域网远程桌面,去掉公网 ID 与中继,直连 IP 或主机名

基于 RustDesk 改造的局域网远程桌面,通过 mDNS 自动发现内网设备,无需公网和 VPN 即可直连,适合家庭实验室和注重隐私的自托管场景。

核心能力

  • 通过 mDNS 自动发现同一局域网内的设备
  • 按 IP 或主机名加可配置 TCP 端口直连
  • 用 Argon2id 哈希存储密码做访问认证
  • 首次连接校验并记住设备指纹
  • 用 CIDR 白名单限制可接入的来源网段

容易踩的坑

两端必须处于同一局域网、私有路由网络或 VPN 内,不提供公网会合与中继;默认监听 TCP 21118,需在主机防火墙放行;从源码构建需先装 Rust、Flutter 及平台原生依赖,且必须带 --recurse-submodules 克隆。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.3.0
  1. v2.0.0-rc.2SubnetDesk 2.0.0-rc.2pre-release2026-11-02 · 2026-11-02 06:07 UTC
    查看更新说明

    请根据操作系统和 CPU 架构选择安装包。

    Windows x64 默认下载(兼容 Win7 SP1 及以上): 绿色版 ZIP · 安装版 EXE

    架构WindowsmacOSLinuxAndroidiOS
    x86-64 (64 位)推荐绿色版 · Win7+ · 推荐安装版 · Win7+ · 绿色版 · Win10+ · 自解压版 · Win10+ · MSI · Win10+DMGArch · RPM (SUSE) · RPM · AppImage · DEB · FLATPAKAPK—
    AArch64 / ARM64绿色版 · 自解压版 · Win10+ · MSI · Win10+DMGRPM (SUSE) · RPM · AppImage · DEB · FLATPAKAPK—
    ARMv7 (32 位)———APK—
    通用包———APK—
    • 普通 Intel / AMD 电脑请选择 x86-64。
    • Windows on ARM、Apple Silicon 或 ARM Linux 请选择 ARM64。
    • Android 不确定架构时优先选择 通用包。

    Full Changelog: https://github.com/zibo-chen/SubnetDesk/compare/v2.0.0-rc.1...v2.0.0-rc.2

  2. v2.0.0-rc.1SubnetDesk 2.0.0-rc.1pre-release2026-10-31 · 2026-10-31 19:05 UTC
    查看更新说明

    请根据操作系统和 CPU 架构选择安装包。

    Windows x64 默认下载(兼容 Win7 SP1 及以上): 绿色版 ZIP · 安装版 EXE

    架构WindowsmacOSLinuxAndroidiOS
    x86-64 (64 位)推荐绿色版 · Win7+ · 推荐安装版 · Win7+ · 绿色版 · Win10+ · 自解压版 · Win10+ · MSI · Win10+DMGArch · RPM (SUSE) · RPM · AppImage · DEB · FLATPAKAPK—
    AArch64 / ARM64绿色版 · 自解压版 · Win10+ · MSI · Win10+DMGRPM (SUSE) · RPM · AppImage · DEB · FLATPAKAPK—
    ARMv7 (32 位)———APK—
    通用包———APK—
    • 普通 Intel / AMD 电脑请选择 x86-64。
    • Windows on ARM、Apple Silicon 或 ARM Linux 请选择 ARM64。
    • Android 不确定架构时优先选择 通用包。

    What's Changed

    • feat: DRM/KMS unattended Wayland capture (remote access to locked/login screens) by @mattcarvercom in https://github.com/zibo-chen/SubnetDesk/pull/42
    • Port the post-divergence RustDesk improvements (security, Wayland/DRM, connection robustness) + client-side view rotation for hardware-rotated panels by @mattcarvercom in https:/
  3. win7-test-20261008SubnetDesk Win7 测试版 — win7-test-20261008pre-release2026-10-08 · 2026-10-08 15:31 UTC
    查看更新说明

    这是 SubnetDesk 的 Win7 Sciter 测试版,提供 x64 和 x86 两种架构。

    使用 Rust 1.90 nightly 和专用 Win7 target,复用当前 LAN 后端。首页、LAN 设置和账号/身份管理已按 Flutter 界面调整。

    下载:

    • win7-x64.exe / win7-x86.exe:便携启动器。
    • win7-x64.zip / win7-x86.zip:包含主程序、服务、Sciter DLL 和第三方许可。解压后运行 rustdesk.exe。
    • imports.json:PE 导入检查报告。
    • SHA256SUMS.txt:下载文件校验值。

    两个架构均由本次 GitHub Actions 从同一提交构建。原生依赖、主程序、服务及便携启动器编译,Sciter ABI 冒烟、主程序启动和 PE 检查通过。

    这是测试版:尚未完成 Win7 SP1 实机、完整远程会话、服务安装/卸载和便携解包验收。远程工具栏、文件传输及连接管理器尚未完成与 Flutter 的完整对齐。 欢迎反馈系统版本、架构、复现步骤及日志。

    构建记录:https://github.com/zibo-chen/SubnetDesk/actions/runs/37796276312 源码提交:fa5726be35e7182395ed785ddff326525ce121b5

  4. v1.3.0最新正式版2026-08-27 · 2026-08-27 16:33 UTC

    请根据操作系统和 CPU 架构选择安装包。

    架构WindowsmacOSLinuxAndroidiOS
    x86-64 (64 位)EXE · MSIDMGArch · RPM (SUSE) · RPM · AppImage · DEB · FLATPAKAPK—
    AArch64 / ARM64EXE · MSIDMGRPM (SUSE) · RPM · AppImage · DEB · FLATPAKAPK—
    ARMv7 (32 位)———APK—
    通用包———APK—
    • 普通 Intel / AMD 电脑请选择 x86-64。
    • Windows on ARM、Apple Silicon 或 ARM Linux 请选择 ARM64。
    • Android 不确定架构时优先选择 通用包。
  5. nightlySubnetDesk Nightlypre-release2026-07-17 · 2026-07-17 01:06 UTC
    查看更新说明

    ⚠️ Nightly 是主分支自动构建的测试版本,仅保留最新一次构建产物。

    Windows x64 默认下载(兼容 Win7 SP1 及以上): 绿色版 ZIP · 安装版 EXE

    架构WindowsmacOSLinuxAndroidiOS
    x86-64 (64 位)推荐绿色版 · Win7+ · 推荐安装版 · Win7+ · 绿色版 · Win10+ · 自解压版 · Win10+ · MSI · Win10+DMGArch · RPM (SUSE) · RPM · AppImage · DEB · FLATPAK——
    AArch64 / ARM64绿色版 · 自解压版 · Win10+ · MSI · Win10+DMGRPM (SUSE) · RPM · AppImage · DEB · FLATPAK——
    ARMv7 (32 位)—————
    通用包—————
    • 普通 Intel / AMD 电脑请选择 x86-64。
    • Windows on ARM、Apple Silicon 或 ARM Linux 请选择 ARM64。
    • Android 不确定架构时优先选择 通用包。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    SubnetDesk

    💡 Why SubnetDesk

    SubnetDesk focuses on one clear use case: remote control between devices that can already reach each other. It removes the public device-ID, rendezvous, relay, cloud account, proxy, and automatic public-update paths from RustDesk, replacing them with direct endpoint connections and local device discovery.

    That makes it a good fit for home labs, offices, classrooms, on-site support, and private networks connected by WireGuard, Tailscale, OpenVPN, or another VPN.

    SubnetDeskTypical RustDesk deployment
    ConnectionDirect IP address or hostnameDevice ID through rendezvous, with optional relay
    DiscoveryAutomatic mDNS discovery on the LANDevice ID or address book
    Server dependencyNo coordination server requiredPublic or self-hosted rendezvous/relay server
    Best suited forLANs, routed private networks, and VPNsInternet and cross-NAT access

    [!IMPORTANT] SubnetDesk does not provide Internet rendezvous or relay services. The two devices must be reachable through the same LAN, a routed private network, or a VPN.

    Version 2.0.0 ships the regular Linux packages. Publication of the separate DRM unattended/login-screen package is paused while its root service is adapted to the new user-session runtime.

    ✨ Features

    CapabilityDetails
    🔎Local discoveryFind nearby devices automatically over mDNS.
    ⚡Direct connectionsConnect by IP address or hostname using a configurable TCP port.
    🔐Access protectionAuthenticate with a username and password; passwords are stored as Argon2id hashes.
    🛡️Device verificationVerify and remember endpoint fingerprints before trusting a device.
    🌐Network allowlistRestrict incoming connections to selected CIDR networks.
    ⭐Fast reconnectionKeep recent devices, favorites, and stable device identities.
    🖥️RustDesk experienceRetain remote control, clipboard, audio, and file-transfer capabilities without a public coordination server.

    📦 Download

    Download stable packages from GitHub Releases. For the newest changes, use the nightly release or artifacts from GitHub Actions.

    PlatformArchitecturesPackages
    Windowsx86_64, ARM64.msi installer (recommended), portable/no-install .exe
    macOSIntel, Apple Silicon.dmg
    Linuxx86_64, ARM64.deb, .rpm, .AppImage, .flatpak; Arch package on x86_64
    AndroidARM64, ARMv7, x86_64, universal.apk

    [!NOTE] Nightly packages are development builds. Prefer the latest stable release for daily use.

    🚀 Quick start

    1. Install and open SubnetDesk on both devices.
    2. On the controlled device, open LAN settings, set a username and password, and enable LAN discovery. The default port is 21118.
    3. On the controller, select a discovered device or enter hostname:port / IP:port manually.
    4. Verify the device fingerprint on first connection, then connect.

    Network checklist

    • Both devices can route to each other.
    • TCP port 21118 (or your configured port) is allowed by the host firewall.
    • mDNS is available when automatic discovery is needed; direct address entry still works without it.
    • The controlled device's CIDR allowlist includes the controller's network.
    • On Linux, see host readiness notes for SELinux, Wayland, and login-screen guidance.

    🔒 Security model

    • Traffic stays on the network path between your devices; SubnetDesk does not require a public coordination service.
    • Passwords are persisted as Argon2id hashes rather than plaintext.
    • Device fingerprints provide trust-on-first-use verification and help detect an unexpected endpoint identity change.
    • CIDR allowlists let the controlled device limit which source networks may connect.

    As with any remote-control software, expose the listening port only to trusted networks, use a strong unique password, and verify fingerprints through a separate trusted channel when possible.

    See the SubnetDesk Privacy Policy for session data, local storage, update requests, and deletion controls.

    🛠️ Build from source

    Clone the repository with its submodules, then run the Flutter desktop build:

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

    The build requires Rust, Flutter, and platform-specific native dependencies. The native package workflow is the source of truth for pinned tool versions, target architectures, and packaging steps.

    🤝 Contributing

    Bug reports, feature ideas, and pull requests are welcome. Before opening a change, check the existing issues and keep changes focused on the LAN/VPN-first product scope.

    💬 Community

    🙏 Credits and license

    SubnetDesk is based on RustDesk and retains its open-source foundations. SubnetDesk is an independent project and is not an official RustDesk release.

    Licensed under the GNU Affero General Public License v3.0. Use remote-control software only on systems you own or are authorized to administer.