RustDesk is an open-source remote desktop software. Unlike traditional commercial software, RustDesk's greatest advantage lies in its support for self-hosted servers. This means you can have complete control over your data, free from the bandwidth bottlenecks and usage limits of public servers, achieving a private remote connection experience with low latency and high image quality. —Gemini
The reason I started using RustDesk is actually because I couldn't stand some domestic remote desktop software anymore. They limit free usage counts and duration, with black-box restrictions where you have no idea how many times or how long you have left—it's all up to fate, and by the end of the month, you basically can't use it at all (everyone knows who I'm talking about). There's also the fact that you can't know whether they're truly secure and whether they really protect your personal privacy. After all, screen content, keyboard and mouse operations, and clipboard synchronization are all real, tangible private data.
RustDesk is actually the ideal solution to the above problems—it balances deployment convenience (providing portable clients), connection smoothness (supporting self-hosted relay), and data security.
Enough chit-chat, let's get straight to the hands-on setup. For server selection, it's recommended to prioritize nodes with closer physical distance to reduce latency. Bandwidth of 5Mbps minimum is recommended, and triple-network BGP lines would be optimal if available.
By the way: if both parties have good network conditions (able to establish P2P direct connection), server traffic isn't actually used; only when P2P fails and relay is used does server bandwidth become the bottleneck.
The following is divided into two parts: the first part covers the official server, and the second part covers the open-source server.
Before installation, you need to open the following ports:
21115 (TCP)21116 (TCP&UDP)21117 (TCP)21118 (TCP)21119 (TCP)21118/tcp and 21119/tcp are Web client ports. If not needed, you don't have to open them.
Choose a suitable location for placement. I'll use /opt/rustdesk as an example.
Then enter the following:
Finally, run and check the Key to complete the setup.
Check the container logs, and you'll see a long key. Please copy and save it—this is a required field when configuring the client later.
Download the client from GitHub (If download is slow, you can use the cloud storage mirror provided by this site: 123Pan)
Go to Settings > Network > ID/Relay Server menu. In the popup window, you only need to fill in ID Server (your IP/domain) and Key fields.

At this point, configure multiple devices, and the communication between them will go entirely through the relay server. If the NAT type is relaxed, P2P connection is also possible.
During the self-hosting process, we've already discovered that the free official server lacks the core "account system" feature, meaning there's no address book management, making multi-device management difficult.
To solve this pain point, many excellent third-party open-source servers have emerged from the community.
I found the lejianwen/rustdesk-server project. This project completes the Web management panel and account system functionality by being compatible with the RustDesk communication protocol.
For individual users who want a complete self-hosted experience but have limited budgets, this is an excellent open-source alternative.
Before installation, you need to open the following ports:
21114 (TCP)21115 (TCP)21116 (TCP&UDP)21117 (TCP)21118 (TCP)21119 (TCP)21118/tcp and 21119/tcp are Web client ports. If not needed, you don't have to open them.
Choose a suitable location for placement. I'll use /opt/rustdesk as an example.
Then enter the following:
Finally, run and check the Key and Web console admin initial password to complete the setup.
Check the container logs, and you'll see a long key as well as the Web console admin initial password. Please copy and save them—these are required fields when configuring the client and Web console later.
Download the client from GitHub (If download is slow, you can use the cloud storage mirror provided by this site: 123Pan)
Go to Settings > Network > ID/Relay Server menu. In the popup window, you only need to fill in ID Server (your IP/domain) and Key fields.

At this point, configure multiple devices, and the communication between them will go entirely through the relay server. If the NAT type is relaxed, P2P connection is also possible.
With the default configuration, you must log in to initiate a remote connection! Go to Settings > Account, and log in using the default username admin and the initial password you saw earlier in the docker logs.

Access http://{Server IP/Domain}:21114 in your browser to enter the Web management panel. The default account is admin, and the password is the initial password obtained from the Docker logs earlier.
There are many configuration options to explore here—do your own research, I won't go into detail on each one.
The playability is quite rich, from device and tag management, to users, groups, and permissions, and it even supports OAuth third-party login.
Here's a little-known tip: the most annoying thing about using the portable version is having to re-enter the ID server and Key every time. Actually, you can completely "hardcode" the configuration by renaming the file.
Rename it to this, and double-clicking to open will default to connecting to your self-hosted node. No matter which computer you take it to, it's click-to-connect, and you'll never connect to the slow official servers again.