Access and Control A Remote Computer
Connecting to and controlling a Remote computer's desktop
In 2010, we produced our first episode about open-source remote access software. Back then we recommended Vinagre/VNC Remote Desktop on Ubuntu. In 2016 we changed our recommendation to the more flexible and secure X2Go. Today we recommend the open-source application RustDesk. Unlike the older solutions we have recommended in the past, Rustdesk is not limited to connecting computers on the same network. The security is built-in to allow connection across computer networks without the need for special permissions to connect through firewalls.
Please note that remote access applications like RustDesk are popular with scammers looking to steal your private information and your money. DO NOT install or use any remote access software from sources you don't KNOW AND TRUST and never let someone you don't know take control of your computer! For Linux users, the safest place to obtain any software is from your distribution's software repositories. (software store, software center, app center, etc.)
Over the years, proprietary applications like TeamViewer, AnyDesk, and Splashtop have become popular. Being proprietary applications, they require you to purchase a license and can be prohibitively expensive for a home user simply trying to control a computer in another room or wanting to assist a remote relative to fix their computer. Unlike the proprietary software, RustDesk is an open-source alternative that is a flexible and secure application that allows you to provide support to another computer user or to access and control a computer desktop in another room, another city, or even another country. You can do that all for free for personal use or if your use is more extensive or is in support of a business, the pricing page provides details and prices for several self-hosting solutions.
Installing RustDesk
For each computer, search for "RustDesk" in your Linux distribution's software repositories. (software store, software center, app center, etc.) On some Ubuntu derivatives you may need to add support for flatpak first. If it is not available in the repositories, or if the computer is not running Linux, then you can obtain the latest release from the website at https://rustdesk.com/ and click on the download button there. You will be taken to their GitHub page. There you will find releases for different architectures. (64-bit and 32-bit versions of Windows, Ubuntu Mac, Android, iOS, and more.)
- Search for Rustdesk in your software repository. Our example here shows the Pop!_Shop application in System76's Pop!_OS Linux. The steps are very similar to installing software in other Linux distributions. For macOS and Windows, the installation process will follow their normal installation steps. Setting up the RustDesk application should be identical across operating system platforms.
- Click Install to begin the download and installation.
- Once the installation is complete, click Open to launch the RustDesk application.
- Now install RustDesk on your second computer.
Connecting to the remote computer
- Launch the RustDesk application on each computer.
- On the controlling computer, enter the ID from the remote computer and click Connect. If the remote computer belongs to someone you are helping, you will need to get that number from them the first time you connect. From then on, it will be listed as a recent session and you just double-click to initiate the connection.
- The remote computer's RustDesk session will display a one-time password. Enter it when prompted and click OK to complete the connection.
- If the remote screen is larger than your local screen resolution you can use the drop-down tool panel at the top of the window to set the display settings to "Scale adaptive" so that the remote display fits completely within the local window.
- Now you can control the remote computer using your local mouse and keyboard.
- Click the red Close button at the far right side of the drop-down tool panel to close the connection and end your support session.