keepcalculator

06 Numbers and Powers

RustDesk vs TeamViewer: Self-Hosted Remote Desktop

Card No. 06·48055 · Updated · Standard formula, shown below

Yes, RustDesk is a viable self-hosted alternative to TeamViewer for remote desktop access. You install the RustDesk server on your own hardware (or a VPS) and the client on each computer, giving you full control over connections and data without paying per-user licensing fees. This article explains how RustDesk compares to TeamViewer, what self-hosting involves, and how to decide if it fits your needs.

What Is RustDesk and How Does It Differ from TeamViewer?

RustDesk is an open-source remote desktop application written in Rust. Like TeamViewer, it lets you view and control another computer over the internet, transfer files, and share clipboard contents. The key difference is that you can host the coordination server yourself. TeamViewer relies on its own servers to broker connections and relay traffic; RustDesk gives you the option to run that broker on your own machine or a cheap VPS.

When you self-host RustDesk, your computers connect to your server to discover each other and exchange connection keys. The actual screen data can flow directly between the two machines (peer-to-peer) or through your server as a relay if direct connection fails. This means your remote sessions do not depend on a third-party service being online, and the metadata about your connections stays under your control.

How RustDesk Self-Hosting Works

RustDesk’s architecture has three parts: the client (installed on each computer), the server (which handles ID registration and signaling), and optionally a relay server for traffic when direct connection is impossible. The official server package, called rustdesk-server, provides both the signaling and relay functions in one program.

To set it up, you need a machine with a public IP address (or a VPS with one) running Linux or Windows. The server listens on TCP ports 21115–21119 by default. Clients are configured with the server’s address and a shared key, which you generate once and paste into the client settings. After that, each client gets a unique ID and can be reached from anywhere by entering that ID and the password you set.

For a small home setup, a Raspberry Pi or an old desktop with 1 GB RAM is enough for a handful of concurrent connections. For dozens of users, a VPS with 2–4 GB RAM and decent bandwidth is more appropriate. You do not need a domain name; a plain IP address works, but a domain with a DNS record makes it easier to remember and lets you get a TLS certificate for encrypted connections.

TeamViewer vs RustDesk: Feature Comparison

TeamViewer is a mature commercial product, and it shows in the polish and breadth of features. RustDesk covers the essentials but lacks some advanced tools. Here is a practical comparison:

  • Cost: TeamViewer charges a subscription per user (roughly $50+/month for a single user at the time of writing). RustDesk is free and open-source; you only pay for the server hardware or VPS you use.
  • Security: Both use end-to-end encryption (AES-256 for TeamViewer; RustDesk uses ChaCha20 or AES depending on the build). With RustDesk you control the key exchange, so you are not trusting a third party’s security posture.
  • Platforms: TeamViewer has clients for Windows, macOS, Linux, iOS, Android, and even some smart TVs. RustDesk supports Windows, macOS, Linux, iOS, and Android, but the mobile apps are less polished.
  • File transfer: Both support drag-and-drop file transfer between machines. RustDesk’s implementation works but lacks the resume and queue management of TeamViewer’s.
  • Session recording: TeamViewer can record sessions to video. RustDesk does not have built-in recording; you would need separate screen-capture software.
  • Multi-monitor support: Both let you view and switch between multiple monitors on the remote machine. RustDesk does this well in recent versions.
  • Unattended access: Both allow you to set a permanent password for a machine so you can connect without someone accepting the prompt.

If you need advanced features like session recording, group policies, or integration with Active Directory, TeamViewer is ahead. If you need core remote control and file transfer without recurring costs, RustDesk is sufficient for most individuals and small teams.

How to Choose Between Them

Your choice depends on your priorities. Use this checklist:

  • Budget: If you have zero budget for remote software, RustDesk is the clear winner. You can even run the server on a $5/month VPS.
  • Technical comfort: Self-hosting requires editing configuration files and opening ports. If you are not comfortable with that, TeamViewer’s plug-and-play model is simpler.
  • Data sensitivity: If you work with regulated data or just prefer not to route your sessions through a public company’s servers, self-hosted RustDesk gives you full data control.
  • Scale: For a few personal machines, RustDesk is easy. For a company with hundreds of employees and IT administration needs, TeamViewer’s management console is more robust.
  • Feature needs: List the features you actually use in TeamViewer. If it is just remote control and file transfer, RustDesk can replace it. If you rely on session recording or remote printing, you may need to keep TeamViewer.

You can also run both side by side during a trial period. Install RustDesk on a couple of test machines, keep TeamViewer for your critical work, and switch over once you are confident.

Common Problems with Self-Hosted RustDesk

Self-hosting is not without friction. Here are the issues people run into most often:

  • NAT traversal failures: If both machines are behind strict NATs, direct connection fails and traffic goes through your relay. If your server has limited bandwidth, sessions feel laggy.
  • Firewall rules: The server needs TCP ports 21115–21119 open. Many home routers block these by default, and some ISPs block incoming connections entirely.
  • Password management: RustDesk uses a random password for each session unless you set a permanent one. Losing that permanent password means you cannot connect until someone physically resets it.
  • Update cadence: RustDesk updates frequently, and the server and client versions should match to avoid compatibility issues. You need to update all machines periodically.
  • Mobile performance: The Android and iOS clients work, but touch gestures and on-screen keyboard behavior are less refined than TeamViewer’s.

Most of these are solvable. For NAT issues, you can configure port forwarding on your router or use a VPS with a public IP as the relay. For passwords, use a password manager to store the permanent password for each machine.

Security and Privacy Considerations

Self-hosting removes one layer of trust, but it adds new responsibilities. With TeamViewer, you trust the company to secure their servers and not misuse your session data. With self-hosted RustDesk, you are responsible for securing the server itself. Key points:

  • Keep your server updated: RustDesk server releases include security fixes. Set up automatic updates if possible.
  • Use strong passwords: The shared key that clients use to communicate with the server should be long and random. Change it if you suspect a leak.
  • Encrypt your traffic: RustDesk encrypts the data channel by default, but you should also put your server behind a reverse proxy with TLS to protect the signaling channel.
  • Limit access: Only open the ports your server needs. Do not expose SSH or the RustDesk web interface to the public internet unless you have proper authentication.
  • Audit logs: RustDesk server logs connection attempts. Review them periodically for unauthorized access.

A common misconception is that self-hosting is automatically more secure than using a commercial service. It is not; it just shifts the trust from a company to you. If you do not patch your server or use weak passwords, you are less secure than with TeamViewer.

Alternatives to RustDesk and TeamViewer

RustDesk is not the only self-hostable option. Consider these:

  • Apache Guacamole: A clientless remote desktop gateway that runs in your web browser. It supports RDP, VNC, and SSH. Heavier to set up but no client installation needed.
  • MeshCentral: A free remote management tool that can be self-hosted. It offers remote control, file transfer, and scripting, with a more polished interface than RustDesk.
  • DWService: An open-source remote access service that runs its own public servers, but you can also host the agent and gateway yourself.
  • AnyDesk: A commercial alternative to TeamViewer with lower prices and a lighter client. It does not offer self-hosting, but it is a common migration path for TeamViewer users.

Each has its strengths. Guacamole is great for browser-based access without installing anything on the client. MeshCentral is more geared toward IT admins who need to manage many machines. RustDesk strikes a balance between simplicity and self-hosting capability.

Frequently Asked Questions

Is RustDesk really free for commercial use?

Yes, RustDesk is licensed under AGPL, which allows commercial use as long as you do not modify the source code and then offer it as a hosted service without releasing your changes. Using it internally for your business is free.

Can I use RustDesk without setting up my own server?

Yes, RustDesk offers public servers that you can use for free, but they are often slow and occasionally unreliable. The whole point of self-hosting is to avoid those limitations and gain privacy.

Does RustDesk work through firewalls?

It can. RustDesk uses NAT traversal techniques to establish direct connections when possible. If direct connection fails, it falls back to a relay server. Your server must be reachable on the standard ports for the relay to work.

What are the minimum requirements for a RustDesk server?

For a few users, a single-core CPU with 512 MB RAM and 1 GB disk is enough. For 10+ concurrent sessions, aim for 2 cores and 2 GB RAM. Bandwidth is the more critical factor; each active session may use 1–2 Mbps.

Can I migrate my TeamViewer settings to RustDesk?

No, there is no import tool. You will need to install RustDesk on each machine, set a permanent password, and configure the server address manually. This is a one-time effort per machine.

Is RustDesk as fast as TeamViewer?

In most cases, yes, especially when a direct peer-to-peer connection is established. Performance depends more on your network and the codec used. RustDesk uses a modern video codec that is competitive with TeamViewer’s.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →