What is rustdesk? Rustdesk is an open source remote access and remote control computer software, allowing maintenance of computers and other devices. For years I have used the free version of teamviewer to help family/friends with various computer issues but in the last few years teamviewer has cut the number of sessions you can have along with how long you can have those sessions for. I have used the enterprise version of teamviwer and it is full of great features which I would say if you can afford to get teamviewer you should it will make your life a lot easier. If you can't than rustdesk is a really good alternative.
For a while I was using the free server provided by rustdesk but a few events reciently like a host suspension and a major ddos attack against their server have encouraged me to spin up my own rust desk server.
I have done this a few times now; and there are things in the server setup process where if you deal with them before hand it will make your setup go really well and quite quickly. So the when deploying a rustdesk server this is how I now do the setup and deployment.
Questions that must be answered!
- Where is the server going to live, what is the IP address and what is the server's name?
This seems self-explanatory but is really important; especially if you don't want to be messing with host files and other things in Linux. Decide where the machine will live on what network and what the name will be.
So for example, the machine is going to live on a SMB network where the ip address is 192.168.2.0/24, with a reserved IP of 192.168.2.137 and a name of rustdesk.smb.ca (smb is the company's registered domain) - What is the hypervisor?
For this setup I will be using Microsoft Hyper-V as our hypervisor platform of choice. - VM OS?
For this setup I will be using Ubuntu Server 22.04 LTS
Steps for installation.
First setup your VM and set the network adapter to a static address.
Get the static address and assign that to your router. If you are wanting to give it a reserved address then go ahead and do the install but be sure to setup the DNS to what you want it to be; as it is difficult to change it later.
Once done start the install of the system. For the install you will want to do a minimum system install and you will want to also allow for ssh access along with the install of the live patch system and powershell
Be sure to make the server name what you want it to be on your network. It is difficult to change the name after the fact.
Once installed run your updates and I like to install the linux firewall ufw and vim.
Now we can setup the server and install rustdesk. There is a good guide on https://github.com/techahold/rustdeskinstall which is more/less the guide we are going to use to install the server.
Steps:
- Configure the firewall
ufw allow proto tcp from YOURIP to any port 22
ufw allow 21115:21119/tcp
ufw allow 8000/tcp
ufw allow 21116/udp
sudo ufw enable - download and run wget https://raw.githubusercontent.com/dinger1986/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.shYou will want to setup the server with DNS for the first option and also include the http server for the second option when you run though the installer. For the DNS you should keep with the fomat "Servername.domain" so if my machine is called rustdesk it will be rustdesk.domain
****IMPORTANT****
The installer will give you a summary which will include your login for the webserver and the public key for the rustdesk client so users can connect to your rustdesk server. Be sure to either write down this important information or take a screenshot. - After the install has finished you should reboot the vm and run the update script for rust desk
After the reboot the site should be accessible on your lan via DNS and/or IP at port 8000 so if my DNS was setup as rustdesk.smb.ca; the webhost will be access at http://192.168.2.137:8000 or http://rustdesk.domain:8000
Now update your firewall to allow access to the rustdesk ports and so you can use your rustdesk from anywhere on the internet.
I have a WAN rule with the following (the rustdesk is an ip alias)
To do that you need to open rustdesk go to -> Setting -> Network and unlock the settings if required.
After you input your server settings if everything has been setup properly your rust desk will show as ready
References:
https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/#set-up-your-own-server-instance-manually
https://rustdesk.com/docs/en/self-host/
https://github.com/rustdesk/rustdesk-server-demo
https://github.com/rustdesk/rustdesk-server
https://www.reddit.com/r/rustdesk/comments/17yevvf/rustdesk_self_hosted_setup_guide/
https://rustdesk.com/docs/en/dev/build/web/
https://github.com/techahold/rustdeskinstall