Table of Contents

Install RustDesk Server (TeamViewer and Anydesk open source alternative)

0. install dependencies

RHEL- based OS (Rocky Alma CentOS)

yum install curl wget unzip tar bind-utils

Ubuntu/Debian

apt install curl wget unzip tar bind-utils

1. Download latest release

Download from github or using these commands:

cd /usr/local
mkdir rustdesk -p
cd rustdesk

ARCH=amd64
RDLATEST=$(curl https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest -s | grep "tag_name" | awk -F'"' '{print $4}')
wget "https://github.com/rustdesk/rustdesk-server/releases/download/${RDLATEST}/rustdesk-server-linux-$ARCH.zip"

2. Install the files

cd /usr/local/rustdesk
mkdir bin data share -p
mkdir /var/log/rustdesk -p

groupadd -r rustdesk
useradd -r rustdesk -g rustdesk

chown rustdesk data -R

cd bin
unzip ../rustdesk-server-linux-amd64.zip
cd ../share

curl -sL https://wiki.nicksoft.com/_media/homelab:rustdesk-systemd.tar.gz|tar zx

3. install and start the systemd service

cp /usr/local/rustdesk/share/*.service /etc/systemd/system
systemctl enable rustdeskrelay.service rustdesksignal.service
systemctl start rustdeskrelay.service rustdesksignal.service

systemctl status rustdeskrelay.service rustdesksignal.service

If all is done correctly you should see something like:

● rustdeskrelay.service - Rustdesk Relay Server
     Loaded: loaded (/etc/systemd/system/rustdeskrelay.service; enabled; preset: disabled)
     Active: active (running) since Sat 2024-11-23 17:14:41 EET; 2s ago
   Main PID: 30784 (hbbr)
      Tasks: 15 (limit: 408484)
     Memory: 2.8M
        CPU: 2ms
     CGroup: /system.slice/rustdeskrelay.service
             └─30784 /usr/local/rustdesk/bin/hbbr

● rustdesksignal.service - Rustdesk Signal Server
     Loaded: loaded (/etc/systemd/system/rustdesksignal.service; enabled; preset: disabled)
     Active: active (running) since Sat 2024-11-23 17:14:41 EET; 2s ago
   Main PID: 30785 (hbbs)
      Tasks: 16 (limit: 408484)
     Memory: 3.2M
        CPU: 4ms
     CGroup: /system.slice/rustdesksignal.service
             └─30785 /usr/local/rustdesk/bin/hbbs

4. Add the ports to the firewall

#using firewalld
sudo firewall-cmd --permanent --add-port=21114-21119/tcp
sudo firewall-cmd --permanent --add-port=21116/udp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

# UFW - Debian and Ubuntu
sudo ufw allow 21114:21119/tcp
sudo ufw allow 21116/udp
sudo ufw status

5. Copy the public key.

cat /usr/local/rustdesk/data/*.pub ; echo

This is the key that you need to paste into the client Key field

6. Troubleshooting.

1. check if directory owner is correct:

ls -la /usr/local/rustdesk/data
total 188
drwxr-xr-x 2 rustdesk rustdesk   4096 Nov 23 17:14 .
drwxr-xr-x 5 root     root       4096 Nov 23 16:49 ..
-rw-r--r-- 1 rustdesk rustdesk  24576 Nov 23 16:49 db_v2.sqlite3
-rw-r--r-- 1 rustdesk rustdesk  32768 Nov 23 17:14 db_v2.sqlite3-shm
-rw-r--r-- 1 rustdesk rustdesk 115392 Nov 23 12:06 db_v2.sqlite3-wal
-rw-r--r-- 1 rustdesk rustdesk     88 Nov 23 10:22 id_ed25238
-rw-r--r-- 1 rustdesk rustdesk     44 Nov 23 10:22 id_ed25238.pub

tail -n 100 /var/log/rustdesk/relayserver.error

7. Files