====== 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 [[https://github.com/rustdesk/rustdesk-server/releases|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 =====
* {{:homelab:rustdesk-systemd.tar.gz|rustdesk-systemd.tar.gz}}