RustDesk
Open-source remote desktop software and self-hosted alternative to TeamViewer.
Why consider RustDesk?
RustDesk provides full remote desktop access and file transfer with complete self-hosting capabilities. It works out of the box with zero configuration while allowing private relay infrastructure.
Learn RustDesk by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide11 sections
What is RustDesk?
RustDesk is an open-source remote desktop application written in Rust that operates as a direct alternative to TeamViewer and AnyDesk. It gives developers, system administrators, and support teams full control over their remote access infrastructure by supporting private relay and rendezvous servers alongside a public rendezvous network.
The platform provides end-to-end encryption, multi-platform client applications for Linux, macOS, Windows, Android, and iOS, low-latency display streaming, and bidirectional file transfer.
Who Is It For?
- System Administrators: Managing remote headless servers and employee workstations without third-party subscription fees.
- IT Support Teams: Assisting end users with remote desktop troubleshooting across Windows, macOS, and Linux without session limits.
- Privacy-Conscious Organizations: Mandating on-premises data isolation where remote screen buffers and keystrokes must never pass through external proprietary relays.
Key Features
- End-to-end encryption based on modern cryptographic primitives.
- Self-hosted rendezvous and relay server (hbbs and hbbr) deployable in Docker.
- Built-in file transfer and remote file manager.
- Integrated TCP tunneling and remote terminal access.
- Support for software and hardware video encoding including VP8, VP9, and AV1.
Prerequisites
- For the Client: Linux, macOS, Windows 10/11, or Android.
- For Self-Hosted Relay Server: A Linux VPS (1 vCPU, 1 GB RAM) with public IP and open ports 21115-21119.
- Docker and Docker Compose (recommended for server deployment).
Installation and Self-Hosted Setup
You can download prebuilt desktop binaries from GitHub releases or run your own rendezvous (hbbs) and relay (hbbr) servers using Docker Compose.
version: '3'services: hbbs: container_name: hbbs image: rustdesk/rustdesk-server:latest command: hbbs -r rustdesk.example.com:21117 volumes: - ./data:/root network_mode: "host" restart: unless-stopped hbbr: container_name: hbbr image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./data:/root network_mode: "host" restart: unless-stoppedStart the servers on your Linux VPS:
docker compose up -dRetrieve your server public key generated in the ./data directory:
cat ./data/id_ed25519.pubIn your RustDesk client on desktop, open Settings -> Network -> ID/Relay Server and input your domain host and public key.
Practical Use Cases
1. Remote Enterprise Support
An IT administrator connects to a remote employee's workstation across NAT barriers using a 9-digit ID and password to resolve software configuration issues without vendor session timeouts.
2. Secure Server Maintenance
A DevOps engineer accesses remote physical machines situated behind enterprise firewalls through RustDesk TCP tunneling without setting up dedicated VPN clients on each workstation.
3. Cross-Platform File Transfer
A developer transfers large binary builds and log archives directly between a local macOS laptop and a remote Ubuntu workstation through the integrated graphical file browser.
Troubleshooting and Limitations
- NAT Traversal Delay: Direct P2P connections can fall back to relay mode when symmetric NATs prevent direct UDP hole punching; running your own hbbr relay guarantees predictable throughput.
- Wayland Display Capture on Linux: On modern Linux distributions using Wayland, ensure pipewire and xdg-desktop-portal are active, or switch to an X11 session for full remote input simulation.
Official Resources
- Official Website: https://rustdesk.com
- GitHub Repository: https://github.com/rustdesk/rustdesk
- Server Documentation: https://rustdesk.com/docs/en/self-host/rustdesk-setup-guide/
Related tools
More options with a similar category or technology profile.
McFly
Fly through your shell history with an intelligent neural network search engine.
cheat
Interactive command-line cheatsheets for system administrators and software engineers.
Pipenv
Python development workflow for humans uniting Pipfile, pip, and virtualenv.
Rye
Comprehensive Python package and workspace management tool written in Rust.