BetterDesk

UNITRONIX活跃维护

跨平台远程桌面控制台,支持 Windows、Linux、macOS 和 Android,通过 Web 界面实现远程访问与控制,可作为免费替代方案。

BetterDesk Console - Ultimate Free Remote Desktop Solution

v3.5.200发布于 2026-10-30 15:38 UTC478star +15 / 7 天81fork同步于 2026-11-10 11:59 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/UNITRONIX/BetterDesk.git
cd BetterDesk
sudo ./betterdesk.sh
硬件要求按 README 说明

README 未说明硬件要求,也未提及显存或 GPU;部署形态为 Linux 或 Windows 主机,或 Docker 容器。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管的 RustDesk 兼容服务器,用单个 Go 二进制替代 hbbs+hbbr,并附带 Node.js 网页控制台

跨平台远程桌面控制台,支持 Windows、Linux、macOS 和 Android,通过 Web 界面实现远程访问与控制,可作为免费替代方案。

核心能力

  • 用单个 Go 二进制合并信令与中继,替代 hbbs+hbbr 两个服务
  • 提供 Node.js 网页控制台,管理设备列表与设备详情
  • Docker 单容器打包服务器、中继与控制台
  • 兼容标准 RustDesk 客户端接入
  • 支持无人值守与网络唤醒(WoL)

容易踩的坑

Tauri MGMT/Agent 桌面客户端仍为 Alpha,不要用于生产,应改用网页控制台加标准 RustDesk 客户端;网页控制台默认走 5000 端口的明文 HTTP 而非 HTTPS;单容器与旧版双容器布局的 API 端口不同(21121 对 21114),新装应使用 all-in-one 镜像。

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

最近发版

5 个版本v3.5.200
  1. v3.5.200BetterDesk 3.5.200最新正式版2026-10-30 · 2026-10-30 15:38 UTC

    BetterDesk 3.5.200 — Security Hardening Release

    This stable release stays on the 3.5 product line and delivers the security audit fixes from #477.

    Security fixes

    • Fixed a high-impact device-scope authorization gap in agent proxy APIs. Scoped users can no longer query telemetry, clipboard, screenshots, files, or remote operations for devices outside their assigned groups.
    • Restricted organization vault connect-password retrieval to users with device.connect; read-only viewers no longer receive unattended-access credentials.
    • Enforced device.connect for authenticated panel sessions on /ws/relay, matching /ws/rendezvous authorization.
    • Hardened the panel updater against untrusted GitHub redirects with HTTPS/host allowlisting and bounded redirect chains.
    • Added regression coverage for device scope, vault RBAC, WebSocket RBAC, and updater redirects.

    Dependency and supply-chain hardening

    • Removed unused root Vitest tooling and its vulnerable tinypool/Vite dependency chain.
    • Updated production console dependency floors, including qs and js-yaml; production npm audit is clean.
    • Updated Go toolchain to 1.26.10 and golang.org/x/crypto to v0.55.0.
    • Added root dependency auditing to CI and removed stale Dependabot paths for missing subprojects.
    • Hardened Docker build/runtime layers, including verified build downloads and removal of unnecessary runtime npm tooling.

    Verification

    • Web Console CI: 134 test suites passed, 903 tests passed.
    • Security suite: 47 tests passed.
    • Go tests and govulncheck: passed.
    • Docker/ZAP/Trivy audit completed; remaining Trivy findings are in the Alpine base image and are documented in the audit report.

    Upgrade and rollback

    This release is delivered through the normal BetterDesk update path. Before updating, keep the updater backup enabled. After update, verify:

    1. Settings → Updates reports the stable main channel and version 3.5.200.
    2. A viewer cannot retrieve a device connect password or open relay access.
    3. A scoped operator receives 403 for devices outside their assigned groups.
    4. The panel and Go server report the same version and remain healthy.

    Related tracking issue: #477.

  2. v3.5.171BetterDesk 3.5.1712026-10-18 · 2026-10-18 21:25 UTC
    查看更新说明

    [3.5.171] — 2026-10-18

    Fixed

    • Go Server release job: set GH_REPO so gh works without a git checkout (upload no longer fails with not a git repository).

  3. v3.5.170BetterDesk 3.5.1702026-10-18 · 2026-10-18 21:16 UTC
    查看更新说明

    [3.5.170] — 2026-10-18

    Changed

    • (none yet)

  4. v3.5.169BetterDesk 3.5.1692026-10-18 · 2026-10-18 21:15 UTC
    查看更新说明

    BetterDesk 3.5.169 hotfix: retire in-repo desktop CI, harden Go release upload and stable version-bump on protected main.

  5. v3.5.168BetterDesk 3.5.1682026-10-17 · 2026-10-17 16:48 UTC
    查看更新说明

    BetterDesk 3.5.168 (stable)

    Comprehensive stable update from 3.5.4 (~August 2026 → October 2026): ~380 commits from the Development branch (dev), including security fixes, UX 3.5, Generator / Support Agent, Docker/installers, OIDC/TOTP, relay, and Web Remote.

    Tag: v3.5.168 · commit: 0b176a2f · PR: #454

    Not included in this release: Dependabot #453 (Express 5 / bcrypt 6 / ejs 7 and other majors) — deferred to a dedicated migration; that PR’s CI fails (35 failed suites).


    Security

    CodeQL, paths, and SSRF

    • Multer: upload cleanup only after reconstructing paths under tmpdir / dataDir (safe path segments) — closes path-injection alerts (#358/#361).
    • Generator: local archive cleanup uses the same confined path.
    • Support Generator (SSRF): GitHub fetches restricted to HTTPS and an allowlisted host set (api.github.com, github.com, objects.githubusercontent.com, release-assets.githubusercontent.com) via https.get({ hostname, path }).
    • Local Client Builder: spawn limited to an allowlisted toolchain basename set (cargo, flutter, dpkg-deb, …).
    • Public generic-agent download: rate-limited (fileAccessLimiter).
    • scheduledBackupService / updateService / generator.routes: path-injection findings treated as false positives on admin-validated paths; filtered in CodeQL config and dismissed in the Security UI.
    • After scan: 0 open CodeQL alerts on the security tip.

    Auth / OIDC / JWT / CSP

    • OIDC discovery: fixed data race (atomic retry interval + goroutine Close()) — green go test -race.
    • OIDC: SSO-first login, role overrides, scoped private endpoints, discovery retry when the IdP comes up after API start.
    • JWT (Go): requires aud / iss / nbf (betterdesk-server / betterdesk-api). Re-login required after upgrade (tokens without these claims are rejected).
    • CSP: removed script-src-attr 'unsafe-inline' and default unsafe-eval on /remote (RdClient: static protobuf bundle); emergency rollback via CSP_RELAX_REMOTE=true.
    • SQL: assertSafeSqlIdent for dynamic table names (stats / dump / restore).
    • TOTP: management under Authentication settings; OTP verification on client paths.
    • Security Test Suite v1.2.0 (npm run test:security / scripts/run-security-suite.*).

    Dependencies (security — shipped)

    • Node: axios ≥1.20, multer ≥2.4, overrides including brace-expansion, proxy-addr, tar, path-to-regexp (Express 4 line).
    • Go: toolchain 1.26.9, golang.org/x/text v0.41.0 (govulncheck clean on called paths).
    • Go pins in betterdesk.sh / betterdesk.ps1 / updateService.js aligned with go.mod.

    UI and new features

    Console (UX 3.5)

    • UX 3.5 is the only supported console shell (classic shell / beta switch removed).
    • Light/dark topbar, sticky Settings tabs, denser mobile chrome, Material icon a11y.
    • Self-hosted Material Symbols (no Google Fonts CDN on the critical path).
    • Help panel with supporters / links instead of guided tours.
    • Onboarding: generator → QR/config → registration.
    • Device tag editing; background devices-table refresh; drag-and-drop with auto-scroll.
    • Client Branding for desktop remotes; custom product label on the public download portal.
    • Registration notifications (badge + center) in UX 3.5.

    Auth and accounts

    • TOTP (2FA) for panel accounts.
    • OIDC SSO-first login and role-mapping administration.
    • Stock RustDesk outbound options: require initiator login, Admin/Operator-only, controller-only mode (opt-in under Settings → Connection).

    Generator / agents / remote

    • Generic agent releases + QR activation.
    • Local Linux package formats in the builder; Support Agent (Wails UI, multi-codec, HTTP/WS profiles).
    • RdClient: static protobuf under CSP; PunchHole/OFFLINE/connection-policy parity; Web Remote ↔ WebSocket

用户点评

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

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

    README 原文

    未翻译

    BetterDesk

    License Go Node.js Version

    Sponsor Buy Me a Coffee Discord

    Self-hosted RustDesk-compatible server in Go (one binary instead of hbbs + hbbr) plus a Node.js web console.

    Wiki · Privacy · Sponsors · Changelog

    Honorary supporter

    INSOLVE — see SPONSORS.md for everyone who backs the project.


    Alpha desktop apps: Tauri MGMT / Agent clients are not for production. Use the web console and a normal RustDesk client. Details: Alpha notice.

    Your data stays on your server. The project does not run vendor analytics — PRIVACY.md.

    AI-assisted development: BetterDesk is created and maintained with the assistance of artificial intelligence tools.


    Quick start

    Linux

    git clone https://github.com/UNITRONIX/BetterDesk.git
    cd BetterDesk
    sudo ./betterdesk.sh
    

    Choose 1 for a new install, or sudo ./betterdesk.sh --auto.

    Docker

    One container with everything inside (server + relay + web console) — the recommended setup:

    curl -fsSL https://raw.githubusercontent.com/UNITRONIX/BetterDesk/main/docker-compose.quick.single.yml -o docker-compose.yml
    docker compose pull && docker compose up -d
    docker compose exec betterdesk betterdesk-show-admin-credentials
    

    Open http://your-server:5000 (plain HTTP, not HTTPS).

    curl -fsSL https://raw.githubusercontent.com/UNITRONIX/BetterDesk/main/docker-compose.quick.yml -o docker-compose.yml
    docker compose pull && docker compose up -d
    docker compose exec console betterdesk-show-admin-credentials
    

    The split layout is kept for existing deployments (API port 21114, single container uses 21121). New installs should use the all-in-one image above.

    Windows

    Run betterdesk.ps1 as Administrator — see the Installation wiki.


    Documentation

    TopicWhere
    Full guidesGitHub Wiki
    Install / Docker / clientsInstallation · Docker · Client setup
    Config, TLS, updatesConfiguration · TLS · Panel updates
    Monitoring / WoLMonitoring · Unattended & WoL
    HelpTroubleshooting · FAQ
    Privacy / licensePRIVACY.md · Licensing
    Developersdocs/ · API · CDAP · Contributing

    Wiki source in-repo: docs/wiki/ (sync with scripts/sync-wiki.ps1 / .sh).


    Web console preview

    The BetterDesk web console uses the UX 3.5 interface. These preview images show the dark theme in English with fictional device data:

    See the Web Console wiki page for the full visual tour and panel capabilities.


    Ports (short)

    PortRole
    21116 TCP+UDPSignal
    21117 TCPRelay
    21121RustDesk Client API (Go; optional Node proxy)
    21114Admin REST (usually localhost)
    5000Web console
    21122CDAP (optional)

    Contributing

    Diagnostics → issue → fork / PR. See docs/development/CONTRIBUTING.md.


    License

    AGPL-3.0. Optional Commercial Grant for eligible sponsors — docs/COMMERCIAL-GRANT.md.


    Support