====== 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}}