Rust desk server установка windows

This article discusses how to install and configure the Remote Access Server RustDesk under Windows Server. The guide is written for Windows Server Core but is just as applicable to Windows Server with a GUI.

Introduction

RustDesk is a remote access rendezvous point server which allows a remote support agent to connect to a remote computer remotely while providing screen sharing, remote control and clipboard support. RustDesk is an open source equivalent to the obnoxiously expensive “TeamViewer”, LogMeIn123 and others.

Prerequisites

This article assumes that:

  1. You have a clean install of Windows Server 2016, 2019 or 2022.
  2. You are running on Server Core and wish to do everything via the command line (everything in the guide is fully applicable to Server GUI, and can be executed from the command line or manually using the GUI interfaces where appropriate).
  3. You are running RustDesk on a dedicated server / virtual machine using a dedicated user account
    Note: As of writing, it does not seem possible to run RustDesk as a native Windows Service (it immediately exits out if you try to launch it through a service user account). You must either run it manually as an application within a user account or within a user account via the pm2 process manager. Both methods are outlined below.
  4. You have already configured NAT/PAT port forwards from your router to your virtual machine as appropriate to your environment.
    TCP: 21115, 21116, 21117, 21118, 21119
    UDP: 21116

Installation

  1. Download and install the current version of the Visual C++ Runtime 2015 – 2022 Library for x64 (version 14 is the specific version required).
    Download: Microsoft Visual C++ Runtime
  2. It is recommended that you do not use the default administrator account to run RustDesk. If you do not wish to use the Administrator account, create a dedicated user for RustDesk to run with on your domain or on the local machine (recommended).
    To create a user on the local machine:

    net user <username> <password> /ADD
  3. To add this user to the Administrators group:
    net localgroup Administrators <username> /ADD
  4. Setup automatic logon to Windows by editing and using the following commands (if you are not on a domain, you can omit DefaultDomainName value)
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /t REG_SZ /v "DefaultUserName" /d "Plex" /f
    
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows 
    NT\CurrentVersion\Winlogon" /t REG_SZ /v "DefaultPassword" /d 
    "your_password_here" /f
    
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows 
    NT\CurrentVersion\Winlogon" /t REG_SZ /v "DefaultDomainName" /d 
    "your_domain_here" /f
    
    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /t REG_SZ /v "AutoAdminLogon" /d "1" /f
  5. Create and enable the necessary firewall rules to allow clients to connect to RustDesk. To do this in PowerShell:
    New-NetFirewallRule -Name RustDesk-TCP -DisplayName "RustDesk-TCP" -Description "RustDesk TCP Rules" -Direction Inbound -Protocol TCP -LocalPort 21115-21119 -Action Allow
    New-NetFirewallRule -Name RustDesk-UDP -DisplayName "RustDesk-UDP" -Description "RustDesk UDP Rules" -Direction Inbound -Protocol UDP -LocalPort 21116 -Action Allow
    Enable-NetFirewallRule -Name RustDesk-TCP
    Enable-NetFirewallRule -Name RustDesk-UDP
  6. Download the latest Windows x64 binary of the RustDesk installer
    Download: RustDesk Server
  7. Create the folder C:\Program Files\RustDesk
    mkdir "%ProgramFiles%\RustDesk"
  8. Extract hbbr.exe and hbbs.exe into C:\Program Files\RustDesk

Using node.js & pm2

If you wish to use node.js and pm2 to manage the process within the user account follow this section. If you do not, skip to the next section.

  1. Download and install the current version of node.js*. The basic installation is sufficient (without installing Chocolaty). Once installed, log off and then back in again to refresh your path environment variables on any open command and PowerShell prompts.
    Download: Node.js
  2. Install pm2 process manager by entering the following commands
    npm install -g pm2
    npm install pm2-windows-startup -g
    pm2-startup install
  3. Register the two RustDesk services with pm2
    pm2 start "C:\Program Files\RustDesk\hbbs.exe" -- --relay-servers <RelayServerIpOrFqdn>:21117
    pm2 start "C:\Program Files\RustDesk\hbbr.exe"
    pm2 save

    Note: If you wish to use a key to provide an additional layer of security for your server. change the first line above to:

    pm2 start "C:\Program Files\RustDesk\hbbs.exe" -- --relay-servers <RelayServerIpOrFqdn>:21117 --key <YourKey>
  4. Test using a RustDesk client
    If you made a mistake and need to change the pm2 parameters use the following commands to delete the records

    pm2 delete "C:\Program Files\RustDesk\hbbs.exe"
    pm2 delete "C:\Program Files\RustDesk\hbbr.exe"

    Then re-add the entry(s) as in step 10 and re-save by entering pm2 save.
    To view the process list enter pm2 list

  5. Check that pm2 was successfully able to start the services and to view the current daemon status’ (and use Ctrl + C on the keyboard to close).
    pm2 log hbbr
    pm2 log hbbs

Without using node.js and pm2

If you do not want to use node.js and pm2 to manage your install, you can use my RustDesk Service Scripts to start, stop and restart RustDesk on your server.

Note: The following is only applicable to Server Core. For GUI Windows Server, add a shortcut to C:\Program Files\RustDesk\Start-RustDesk.cmd in the Startup folder or add an entry to the same file under HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

  1. Download my RustDesk tools zip
    Download: RustDesk-Tools (1KB)
  2. Extract the contents of the zip file into C:\Program Files\RustDesk
  3. Use notepad to edit the Start-RustDesk.cmd script file and set the value for the relayServer IP/FQDN to match your environment.
    If you wish to use a key to secure your server, add --key <YourKey> to the end of the hbbs.exe line e.g.

    start "HBBS-RustDesk" /min "%ProgramFiles%\RustDesk\hbbs.exe" --relay-servers %relayServer%:%relayPort% --key <YourKey>
  4. Enter the command:
    reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /t REG_SZ /v "10" /d "C:\Program Files\RustDesk\Start-RustDesk.cmd" /f
  5. Restart the server and RustDesk should automatically load as two minimised windows in the bottom left of the Server Code screen
  6. Test using a RustDesk client


Rustdesk server Install Script

Easy install Script for Rustdesk on linux, should work on any 64bit (32bit arm will install rustdesk server only) debian or centos based system supporting systemd.
For Rustdesk visit https://rustdesk.com

You can use Hetzner to test this with a $20 credit using this referal code https://hetzner.cloud/?ref=p6iUr7jEXmoB

How to Install the server

Please setup your firewall on your server prior to running the script.

Make sure you have got access via ssh or otherwise setup prior setting up the firewall, command for UFW is:

ufw allow proto tcp from YOURIP to any port 22

If you have UFW installed use the following commands (you only need port 8000 if you are using the preconfigured install files):

ufw allow 21115:21119/tcp
ufw allow 8000/tcp
ufw allow 21116/udp
sudo ufw enable

Run the following commands:

wget https://raw.githubusercontent.com/dinger1986/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh

Choose your preferences from the options given in the script.

Please Note:
If you allow the script to create preconfigured install files (with your IP/DNS and key set) it will install gohttpserver using port 8000 for you to easily download the install scripts.

How to update the server

Run the following commands:

wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/update.sh
chmod +x update.sh
./update.sh

Rustdesk windows powershell install script

Generates a powershell script for install grabbing WAN IP and Key currently in /opt/rustdesk but will be moved to a web url for easy deployment.

Tips

If you want to restart the services use the following commands:

sudo systemctl restart rustdesksignal
sudo systemctl restart rustdeskrelay

RustDesk Remote Desktop – бесплатное приложение для удаленного доступа и управления компьютером или мобильным устройством. Сервис удаленного рабочего стола с открытым исходным кодом работает «из коробки» и не требует настройки.

Установка собственного сервера rustdesk возможна в двух вариантах, с использованием Docker/Podman и без его использования. Docker/Podman, нужен только чтобы запустить rustdesk-server в качестве контейнера докеров, по этому решайте сами нужно оно вам или нет. Я буду устанавливать без докера.

Ставить будем на debian 11.5 без использования графики, по этому ставим только базовые пакеты.

После базовой установки доустанавливаем пакеты которые нам пригодятся:

# apt update
# apt install ssh nano mc net-tools wget sudo

Настраиваем статический IP адрес в нашей ОС если она у вас так же как у меня находится за NAT`ом.

# nano /etc/network/interfaces

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
        address Ваш IP
        netmask Ваша сетевая маска
        gateway Ваш шлюз
        dns-nameservers Ваши DNS сервера

Перезагружаем ОС, проверяем что интернет есть и приступаем к установке сервера rustdesk.

# wget https://raw.githubusercontent.com/dinger1986/rustdeskinstall/master/install.sh
# chmod +x install.sh
# ./install.sh

Во время установки инсталлер спросит у вас некоторые данные, например как вы хотите подключаться к серверу по IP адресу или по DNS имени, я выбрал по IP адресу.

А так же создать релей или нет. Я выбрал 1

При этом в веб интерфейсе сервера rustdesk появятся два пакета настроек c своими сценариям установок для Ваших клиентов.

После успешной установки скрипты сообщит вам логин и пароль для подключения в веб интерфейс сервера.

На это установка сервера завершена, теперь нужно открыть следующие порты на вашем роутере:
TCP: (21115, 21116, 21117, 21118, 21119)
UDP: (21116)

Далее идем за ПК клиента и настраиваем клиентскую часть. Заходим в параметрыID/Сервер ретрансляции

В появившемся окне вводи IP адрес нашего сервера, остальные параметры клиент сам «подтянет».

This article discusses how to install and configure the Remote Access Server RustDesk under Windows Server. The guide is written for Windows Server Core but is just as applicable to Windows Server with a GUI.

Introduction

RustDesk is a remote access rendezvous point server which allows a remote support agent to connect to a remote computer remotely while providing screen sharing, remote control and clipboard support. RustDesk is an open source equivalent to the obnoxiously expensive “TeamViewer”, LogMeIn123 and others.

Prerequisites

This article assumes that:

  1. You have a clean install of Windows Server 2016, 2019 or 2022.
  2. You are running on Server Core and wish to do everything via the command line (everything in the guide is fully applicable to Server GUI, and can be executed from the command line or manually using the GUI interfaces where appropriate).
  3. You are running RustDesk on a dedicated server / virtual machine using a dedicated user account
    Note: As of writing, it does not seem possible to run RustDesk as a native Windows Service (it immediately exits out if you try to launch it through a service user account). You must either run it manually as an application within a user account or within a user account via the pm2 process manager. Both methods are outlined below.
  4. You have already configured NAT/PAT port forwards from your router to your virtual machine as appropriate to your environment.
    TCP: 21115, 21116, 21117, 21118, 21119
    UDP: 21116

Installation

  1. Download and install the current version of the Visual C++ Runtime 2015 – 2022 Library for x64 (version 14 is the specific version required).
    Download: Microsoft Visual C++ Runtime
  2. It is recommended that you do not use the default administrator account to run RustDesk. If you do not wish to use the Administrator account, create a dedicated user for RustDesk to run with on your domain or on the local machine (recommended).
    To create a user on the local machine:

    net user <username> <password> /ADD
  3. To add this user to the Administrators group:
    net localgroup Administrators <username> /ADD
  4. Setup automatic logon to Windows by editing and using the following commands (if you are not on a domain, you can omit DefaultDomainName value)
    reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /t REG_SZ /v "DefaultUserName" /d "Plex" /f
    
    reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows 
    NTCurrentVersionWinlogon" /t REG_SZ /v "DefaultPassword" /d 
    "your_password_here" /f
    
    reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows 
    NTCurrentVersionWinlogon" /t REG_SZ /v "DefaultDomainName" /d 
    "your_domain_here" /f
    
    reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /t REG_SZ /v "AutoAdminLogon" /d "1" /f
  5. Create and enable the necessary firewall rules to allow clients to connect to RustDesk. To do this in PowerShell:
    New-NetFirewallRule -Name RustDesk-TCP -DisplayName "RustDesk-TCP" -Description "RustDesk TCP Rules" -Direction Inbound -Protocol TCP -LocalPort 21115-21119 -Action Allow
    New-NetFirewallRule -Name RustDesk-UDP -DisplayName "RustDesk-UDP" -Description "RustDesk UDP Rules" -Direction Inbound -Protocol UDP -LocalPort 21116 -Action Allow
    Enable-NetFirewallRule -Name RustDesk-TCP
    Enable-NetFirewallRule -Name RustDesk-UDP
  6. Download the latest Windows x64 binary of the RustDesk installer
    Download: RustDesk Server
  7. Create the folder C:Program FilesRustDesk
    mkdir "%ProgramFiles%RustDesk"
  8. Extract hbbr.exe and hbbs.exe into C:Program FilesRustDesk

Using node.js & pm2

If you wish to use node.js and pm2 to manage the process within the user account follow this section. If you do not, skip to the next section.

  1. Download and install the current version of node.js*. The basic installation is sufficient (without installing Chocolaty). Once installed, log off and then back in again to refresh your path environment variables on any open command and PowerShell prompts.
    Download: Node.js
  2. Install pm2 process manager by entering the following commands
    npm install -g pm2
    npm install pm2-windows-startup -g
    pm2-startup install
  3. Register the two RustDesk services with pm2
    pm2 start "C:Program FilesRustDeskhbbs.exe" -- --relay-servers <RelayServerIpOrFqdn>:21117
    pm2 start "C:Program FilesRustDeskhbbr.exe"
    pm2 save

    Note: If you wish to use a key to provide an additional layer of security for your server. change the first line above to:

    pm2 start "C:Program FilesRustDeskhbbs.exe" -- --relay-servers <RelayServerIpOrFqdn>:21117 --key <YourKey>
  4. Test using a RustDesk client
    If you made a mistake and need to change the pm2 parameters use the following commands to delete the records

    pm2 delete "C:Program FilesRustDeskhbbs.exe"
    pm2 delete "C:Program FilesRustDeskhbbr.exe"

    Then re-add the entry(s) as in step 10 and re-save by entering pm2 save.
    To view the process list enter pm2 list

  5. Check that pm2 was successfully able to start the services and to view the current daemon status’ (and use Ctrl + C on the keyboard to close).
    pm2 log hbbr
    pm2 log hbbs

Without using node.js and pm2

If you do not want to use node.js and pm2 to manage your install, you can use my RustDesk Service Scripts to start, stop and restart RustDesk on your server.

Note: The following is only applicable to Server Core. For GUI Windows Server, add a shortcut to C:Program FilesRustDeskStart-RustDesk.cmd in the Startup folder or add an entry to the same file under HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun

  1. Download my RustDesk tools zip
    Download: RustDesk-Tools (1KB)
  2. Extract the contents of the zip file into C:Program FilesRustDesk
  3. Use notepad to edit the Start-RustDesk.cmd script file and set the value for the relayServer IP/FQDN to match your environment.
    If you wish to use a key to secure your server, add --key <YourKey> to the end of the hbbs.exe line e.g.

    start "HBBS-RustDesk" /min "%ProgramFiles%RustDeskhbbs.exe" --relay-servers %relayServer%:%relayPort% --key <YourKey>
  4. Enter the command:
    reg add "HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun" /t REG_SZ /v "10" /d "C:Program FilesRustDeskStart-RustDesk.cmd" /f
  5. Restart the server and RustDesk should automatically load as two minimised windows in the bottom left of the Server Code screen
  6. Test using a RustDesk client


Удалённый доступ к компьютеру — это когда вы сидите у себя дома и со своего компьютера управляете чужим: двигаете мышкой, создаёте папки, нажимаете клавиши и т. д. Обычно это нужно для техподдержки: если у родных проблемы с компьютером, но вам не хочется ехать к ним физически. Или если у вас компьютер на работе, а вам нужно получить к нему доступ из дома. 

Программ для удалённого доступа много — недавно мы делали подборку. Проблема в том, что все они работают через чужой сервер. Если он перестанет работать, сервис закроется или решит уйти из России, удалённого управления не будет. Например, из России ушёл сервис TeamViewer — самый популярный сервис удалённого доступа. 

Сегодня мы поднимем собственный сервер удалённого доступа, чтобы ни от кого не зависеть.

Что нам понадобится

Мы будем использовать RustDesk — бесплатную программу с открытым исходным кодом для удалённого управления компьютером. Её можно поставить на свой сервер и компьютеры и ни от кого не зависеть. 

Софт для удалённой работы состоит из двух частей — серверной и клиентской. Серверная часть — это такой виртуальный центр связи, который соединяется с компьютерами и передаёт данные с одного компьютера на другой. Серверная часть ставится на сервере — для этого мы будем использовать учебный сервер для виртуального хранилища. 

Клиентская часть устанавливается и запускается на тех компьютерах, где нам нужен удалённый доступ — для управления или чтобы кто-то смог к нам удалённо подключиться. 

У RustDesk есть и то и другое, поэтому установим всё по очереди.

Устанавливаем серверную часть

Чтобы установить что-то на сервер, нам нужно сначала получить к нему доступ. Чаще всего доступ к серверу настраивают по SSH и работают из командной строки, поэтому мы будем делать точно так же: подключимся к серверу и введём нужные команды.

Идём на официальный гитхаб проекта, берём оттуда скрипт установки серверной части и вставляем его в командную строку сервера:

wget https://raw.githubusercontent.com/dinger1986/rustdeskinstall/master/install.sh

chmod +x install.sh

./install.sh

Делаем свой удалённый доступ к компьютеру

Во время установки у нас спросят: IP или DNS — выбираем IP:

Делаем свой удалённый доступ к компьютеру

Дальше скрипт нам предложить скачать HTTP-сервер, который нужен для работы программы. Соглашаемся и вводим 1:

Делаем свой удалённый доступ к компьютеру

Когда всё будет готово, скрипт отдаст нам пароль администратора и публичны ключ — они нам понадобятся в будущем:

Делаем свой удалённый доступ к компьютеру

Устанавливаем программу на компьютер

Заходим на официальный сайт RustDesk и скачиваем программу для своей операционной системы. Мы зашли на сайт с макбука, поэтому нам сразу предложили скачать версию для MacOS:

Делаем свой удалённый доступ к компьютеру

После запуска программа сразу предлагает настроить разрешение на снимки экрана и универсальный доступ (в Windows такого нет, там с этим всё проще):

Делаем свой удалённый доступ к компьютеру

Нажимаем «Настроить», заходим в системные настройки, нажимаем замочек внизу и ставим галочку напротив RustDesk:

Делаем свой удалённый доступ к компьютеру

Теперь укажем адрес нашей серверной части, которую мы установили раньше. Для этого нажимаем на три точки, выбираем «ID/Сервер трансляции» и вводим там IP-адрес нашего сервера. Он совпадает с адресом, по которому мы подключались по SSH, а ещё этот адрес сообщаем нам сам сервер при установке:

Делаем свой удалённый доступ к компьютеру

То, что подчеркнуто красным, — сохраните

Делаем свой удалённый доступ к компьютеру

Также в поле Key нужно будет добавить то, что было сказано в Your Public Key. Если этого не сделать, то при попытке подключения будет ругаться на ключи доступа

Внизу сразу меняется статус подключения на «Готово» — это значит, что сервер и клиент нашли друг друга и готовы работать вместе.

Теперь точно так же устанавливаем и настраиваем эту программу на том компьютере, которым мы хотим удалённо управлять. После этого на одном из них вводим ID другого, нажимаем «Подключиться»:

Делаем свой удалённый доступ к компьютеру

Вёрстка:

Кирилл Климентьев

RustDesk - Ваш удаленый рабочий стол
Servers •
Build •
Docker •
Structure •
Snapshot
[English] | [Українська] | [česky] | [中文] | [Magyar] | [Español] | [فارسی] | [Français] | [Deutsch] | [Polski] | [Indonesian] | [Suomi] | [മലയാളം] | [日本語] | [Nederlands] | [Italiano] | [Português (Brasil)] | [Esperanto] | [한국어] | [العربي] | [Tiếng Việt] | [Ελληνικά]
Нам нужна ваша помощь для перевода этого README и RustDesk UI на ваш родной язык

Общение с нами: Discord | Twitter | Reddit

ko-fi

Еще одно программное обеспечение для удаленного рабочего стола, написанное на Rust. Работает из коробки, не требует настройки. Вы полностью контролируете свои данные, не беспокоясь о безопасности. Вы можете использовать наш сервер ретрансляции, настроить свой собственный, или написать свой.

image

RustDesk приветствует вклад каждого. Ознакомьтесь с docs/CONTRIBUTING-RU.md в начале работы для понимания.

Как работает RustDesk?

СКАЧАТЬ ПРИЛОЖЕНИЕ

Get it on F-Droid

Бесплатные общедоступные серверы

Ниже приведены бесплатные публичные сервера, используемые по умолчанию. Имейте ввиду, они могут меняться со временем. Также стоит отметить, что скорость работы сети зависит от вашего местоположения и расстояния до серверов. Подключение происходит к ближайшему доступному.

Расположение Поставщик Технические характеристики
Сеул AWS lightsail 1 vCPU / 0.5GB RAM
Сингапур Vultr 1 vCPU / 1GB RAM
Даллас Vultr 1 vCPU / 1GB RAM
Германия Hetzner 2 vCPU / 4GB RAM
Германия Codext 4 vCPU / 8GB RAM
Финляндия (Хельсинки) 0x101 Cyber Security 4 vCPU / 8GB RAM
США (Эшберн) 0x101 Cyber Security 4 vCPU / 8GB RAM

Зависимости

Настольные версии используют sciter для графического интерфейса, загрузите динамическую библиотеку sciter самостоятельно.

Windows |
Linux |
MacOS

Мобильные версии используют Flutter. В будущем мы перенесем настольную версию со Sciter на Flutter.

Первичные шаги для сборки

  • Подготовьте среду разработки Rust и среду сборки C++.

  • Установите vcpkg, и правильно установите переменную VCPKG_ROOT

    • Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static
    • Linux/MacOS: vcpkg install libvpx libyuv opus
  • Запустите cargo run

Как собрать на Linux

Ubuntu 18 (Debian 10)

sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake

Fedora 28 (CentOS 8)

sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel

Arch (Manjaro)

sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire

Установка vcpkg

git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2021.12.01
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus

Исправление libvpx (для Fedora)

cd vcpkg/buildtrees/libvpx/src
cd *
./configure
sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile
sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile
make
cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd

Сборка

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run

Смените Wayland на X11 (Xorg)

RustDesk не поддерживает Wayland. Смотрите этот документ для настройки Xorg в качестве сеанса GNOME по умолчанию.

Как собрать с помощью Docker

Начните с клонирования репозитория и создания docker-контейнера:

git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .

Затем каждый раз, когда вам нужно собрать приложение, запускайте следующую команду:

docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder

Обратите внимание, что первая сборка может занять больше времени, прежде чем зависимости будут кэшированы, но последующие сборки будут выполняться быстрее. Кроме того, если вам нужно указать другие аргументы для команды сборки, вы можете сделать это в конце команды в переменной <OPTIONAL-ARGS>. Например, если вы хотите создать оптимизированную версию, вы должны запустить приведенную выше команду и в конце строки добавить --release. Полученный исполняемый файл будет доступен в целевой папке вашей системы и может быть запущен с помощью:

Или, если вы используете исполняемый файл релиза:

Пожалуйста, убедитесь, что вы запускаете эти команды из корня репозитория RustDesk, иначе приложение не сможет найти необходимые ресурсы. Также обратите внимание, что другие cargo подкоманды, такие как install или run, в настоящее время не поддерживаются этим методом, поскольку они будут устанавливать или запускать программу внутри контейнера, а не на хосте.

Структура файлов

  • libs/hbb_common: видеокодек, конфиг, обертка tcp/udp, protobuf, функции fs для передачи файлов и некоторые другие служебные функции
  • libs/scrap: захват экрана
  • libs/enigo: специфичное для платформы управление клавиатурой/мышью
  • src/ui: графический пользовательский интерфейс
  • src/server: сервисы аудио/буфера обмена/ввода/видео и сетевых подключений
  • src/client.rs: одноранговое соединение
  • src/rendezvous_mediator.rs: свяжитесь с rustdesk-server, дождитесь удаленного прямого (обход TCP NAT) или ретранслируемого соединения
  • src/platform: специфичный для платформы код

Скриншоты

image

image

image

image

The following installation instructions will only supply the experimental (public) branch’s server files since legacy got removed December 2016. (8 December 2016)

Contents

  • 1 Dedicated server
    • 1.1 Installation
    • 1.2 Configuration & running
      • 1.2.1 Command line parameters
      • 1.2.2 RCON
      • 1.2.3 Server Commands
      • 1.2.4 Ban list
  • 2 Linux Scripts Resources
    • 2.1 LinuxGSM Rust Server
      • 2.1.1 Features
      • 2.1.2 Supported Servers
      • 2.1.3 Links
  • 3 Windows Resources
    • 3.1 Rust Server Manager [PAID]
    • 3.2 Other

Dedicated server

Installation

  • Install SteamCMD
  • Start SteamCMD
    • Log in with a Steam account or anonymously: login anonymous or username
    • Select install folder: force_install_dir PATH:SteamCMDrust_server
    • Run: app_update 258550 validate to download the public branch of rust dedicated server

Configuration & running

You can run the Rust DS with ./RustDedicated -batchmode (Linux) or rust_server.exe -batchmode (Windows).

Command line parameters

The startup command can be appended with the following startup parameters:

parameter default description
+server.ip 0.0.0.0 Sets the Server IP. Leave it to 0.0.0.0 unless you have multiple IPs.
+server.port 28015 Sets the port the server will use. (default 28015 UDP)
+rcon.ip 0.0.0.0 Sets the RCON IP.
+rcon.port 28016 Port to listen to for RCON.
+rcon.web 0 If set to true, use websocket rcon. If set to false use legacy, source engine rcon.
+server.tickrate 10 Server refresh rate — Not recommended to go above 30.
+server.hostname "Your Server Name" The displayed name of your server.
+server.identity "my_server_identity" Changes path to your server data rust/server/my_server_identity. Useful for running multiple instances.
+server.maxplayers 50 Maximum amount of players allowed to connect to your server at a time.
+server.worldsize 3000 Defines the size of the map generated (min 1000, max 6000)
+server.seed 50000 Is the map generation seed.
+server.saveinterval 600 Time in seconds for server save.
+rcon.password "YourPassword" Sets the RCON password
-logfile gamelog.txt If you’re using a script, you’d better put the current date as a filename, otherwise, it’ll be erased on every start.
-silent-crashes - Won’t display a crash dialog and will restart automatically if server is installed as service.

For example:

-batchmode +server.ip 0.0.0.0 +server.port 28015 +server.tickrate 10 +server.hostname "Your Server Name" +server.identity "your_server_identity" +server.seed 793197 +server.maxplayers 50 +server.worldsize 3000 +server.saveinterval 600 +rcon.ip 0.0.0.0 +rcon.port 28016 +rcon.password "Your_Rcon_Password" -logfile "logfilename.log"

RCON

To use RCON (Remote console) you can either type directly in the CMD, or join the server and press F1 to open the console. (requires authlevel 1 or 2)

To add yourself as admin (authlevel 2) type «ownerid YourSteamId64» in the Command Prompt and re-join the server, or add it to the users.cfg located in ../server/serveridentity/cfg.

Otherwise, you can use RustAdmin, a nice remote RCON client (recommended).

When the server is up and running, you can issue the commands from the Server Commands list below.

Server Commands

Here is a RAW list of available commands. You can put them either in your server.cfg (then reboot the server), or input them using RCON.

If you want the values to be permanent then save it using the command server.writecfg

Last update: 31 August 2017


> Commands

bradley.enabled                      If set to false (0) it will disable the APC. Default is (1)
ai.think                             If set to False, bears and wolfs are only hostile on attack (True)
ai.move                              If set to False, animals will stop moving (recommended for performance boost) (True)
ai.sensetime                         It's no use to change this value (1)
ai.frametime                         no description (5)
ai.tickrate                          Changes the tickrate of animals (5)
antihack.enabled                     Enables / disables antihack (True)
antihack.admincheat                  Are admins allowed to use their admin cheat (True)
antihack.objectplacement             Use antihack to verify object placement by players (True)
antihack.modelstate                  Use antihack to verify model state sent by players (True)
antihack.userlevel                   0 = users, 1 = admins, 2 = developers (2)
antihack.enforcementlevel            What happens if player is above 'antihack.maxviolation' - 0 = no enforcement, 1 = kick, 2 = ban (1)
antihack.maxdesync                   Max allowed client desync, lower value = more false positives (1)
antihack.relaxationrate              The rate at which violation values go back down (0.1)
antihack.relaxationpause             The time before violation values go back down (10)
antihack.maxviolation                Violation value above this results in enforcement (100)
antihack.noclip_protection           0 = disabled, 1 = ray, 2 = sphere, 3 = curve (3)
antihack.noclip_reject               Whether or not to reject movement when noclip is detected (True)
antihack.noclip_penalty              Violation penalty to hand out when noclip is detected (0)
antihack.noclip_stepsize             Movement curve step size, lower value = less false positives (0.1)
antihack.noclip_maxsteps             Movement curve max steps, lower value = more false positives (5)
antihack.speedhack_protection        0 = disabled, 1 = enabled (1)
antihack.speedhack_reject            Whether or not to reject movement when speedhack is detected (False)
antihack.speedhack_penalty           Violation penalty to hand out when speedhack is detected (50)
antihack.speedhack_forgiveness       Speed threshold to assume speedhacking, lower value = more false positives (2)
antihack.speedhack_deltatime         Time interval to calculate speed in, lower value = more false positives (0.2)
antihack.speedhack_tickets           Required number of speeding tickets to trigger a violation (15)
antihack.speedhack_history           Speeding ticket history length (20)
antihack.flyhack_protection          0 = disabled, 1 = simple, 2 = advanced (2)
antihack.flyhack_reject              Whether or not to reject movement when flyhack is detected (False)
antihack.flyhack_penalty             Violation penalty to hand out when flyhack is detected (50)
antihack.flyhack_forgiveness         Distance threshold to assume flyhacking, lower value = more false positives (2)
antihack.projectile_protection       0 = disabled, 1 = speed, 2 = speed + entity, 3 = speed + entity + LOS (3)
antihack.projectile_penalty          Violation penalty to hand out when projectile hack is detected (0)
antihack.projectile_forgiveness      Projectile speed forgiveness in percent, lower value = more false positives (0.5)
antihack.projectile_padding          Projectile hit distance padding in meters, lower value = more false positives (5)
antihack.projectile_serverframes     Projectile server frames to include in delay, lower value = more false positives (2)
antihack.projectile_clientframes     Projectile client frames to include in delay, lower value = more false positives (2)
antihack.projectile_tickets          Required number of projectile line of sight tickets to trigger a violation (10)
antihack.melee_protection            0 = disabled, 1 = initiator, 2 = initiator + target, 3 = initiator + target + LOS (3)
antihack.melee_penalty               Violation penalty to hand out when melee hack is detected (0)
antihack.melee_forgiveness           Melee distance forgiveness in percent, lower value = more false positives (0.5)
antihack.melee_padding               Melee hit distance padding in meters, lower value = more false positives (2)
antihack.melee_serverframes          Melee server frames to include in delay, lower value = more false positives (2)
antihack.melee_clientframes          Melee client frames to include in delay, lower value = more false positives (2)
antihack.melee_tickets               Required number of melee line of sight tickets to trigger a violation (2)
antihack.eye_protection              0 = disabled, 1 = distance, 2 = distance + LOS (2)
antihack.eye_penalty                 violation penalty to hand out when eye hack is detected (0)
antihack.debuglevel                  0 = silent, 1 = print max violation, 2 = print every violation (1)
batching.colliders                   *EXPERIMENTAL* Rust batches colliders to get around the maximum collider limit. To improve server performance you can unbatch (batching.colliders 0) colliders until they reach 250k. (True)
batching.collider_vertices           no description (10000)
batching.collider_submeshes          no description (1)
batching.verbose                     no description (0)
chat.enabled                         Enable or disable chat displaying (True)
chat.serverlog                       Enable or disable chat logging (True)
construct.frameminutes               How many minutes before a placed frame gets destroyed (30)
craft.instant                        Enable or disable instant crafting (False)
debug.checktriggers                  Debug triggers (False)
decay.tick                           Larger amount increases the applied decay damage to entity. (600)
decay.scale                          1 = normal decay, 0,5 = 50%, 0 = turn decay off (1)
decay.debug                          Debugmode (False)
env.time                             Shows in-game time. If value declared, will change the server time (values: 0 - 24)
env.day                              Displays the day of the month. Pointless to change this value (12)
env.month                            Displays the month. Pointless to change this value (6)
env.year                             Displays the year. Pointless to change this value (2024)
fps.limit                            The maximum number of frames to render per second (256)
gc.interval                          Changes the interval between garbage collects. (-1)
heli.lifetimeminutes                 The amount of time the helicopter is allowed to stay in minutes. (15)
heli.guns                            Enables / disables the helicopters minigun. If set to 0, the helicopter will shoot rockets only. (1)
heli.bulletdamagescale               Changes the bullet damage of the helicopter. Higher value = more damage (1)
heli.bulletaccuracy                  Changes the accuracy of the bullets. Higher value = less accuracy (2)
net.visdebug                         Turns on debug display of network visibility (False)
physics.droppedmode                  The physics mode that dropped items and corpses should use. good, tempgood or fast. fast + tempgood might cause objects to fall through other objects. (good)
physics.sendeffects                  Send effects to clients when physics objects collide (True)
physics.bouncethreshold              no description (2)
physics.sleepthreshold               no description (0.005)
physics.solveriterationcount         The default solver iteration count permitted for any rigid bodies (default 7). Must be positive (3)
physics.steps                        The amount of physics steps per second (16)
pool.skins                           no description (False)
sentry.targetall                     Target everyone regardless of authorization (False)
sentry.hostileduration               How long until something is considered hostile after it attacked (120)
server.ip                            Sets the IP of the server. Should be stated in the startup parameters
server.port                          Sets the IP of the server. Should be stated in the startup parameters
server.maxplayers                    Changes the maximum amount of player slots.
server.hostname                      Sets the Servername. example: server.hostname "My Rust Server"
server.identity                      Changes path to your server data. (my_server_identity)
server.level                         Sets the map of the server (Procedural Map) values: Barren, Craggy Island, Hapis, Savas Island
server.seed                          Sets the the map generation seed.
server.salt                          Prints the server.salt
server.worldsize                     Changes the map size (3000). values: 1000 - 6000. 3000 equals 9km². (3000m^2)
server.saveinterval                  Interval between the server saves the map. (300)
server.secure                        Enables / disables Valve Anti Cheat security. (True)
server.tickrate                      Changes the server tickrate. Going higher than 30 is not recommended. (30)
server.entityrate                    Tickrate. Recommended to leave it at 16. (16)
server.cycletime                     no description (500)
server.official                      Only whitelisted server by Facepunch can use this command (False)
server.globalchat                    If set to false, only people within voice range can read each others messages. (True)
server.stability                     If set to false, building blocks will have 100% stability no matter how high you build. (True)
server.radiation                     Disables / enables server radioation (True)
server.itemdespawn                   Time until an item despawn (180)
server.pve                           Enables / disables PvE mode (False)
server.description                   Command used to write a server description. Make n to make a new line
server.headerimage                   Sets the serverbanner - picture must be 500x256
server.logoimage                     Sets the servers logo image - Image is shown in the server browser and rust+ app
server.url                           Sets the server 'Webpage'
server.branch                        no description ()
server.eac                           Enables / disables Easy Anti Cheat (1)
server.queriespersecond              no description (2000)
server.ipqueriespermin               no description (30)
server.meleedamage                   Changes the melee damage in percent - 1 = 100, 0.5 = 50%, 0 = 0% (1)
server.arrowdamage                   Changes the arrow damage in percent - 1 = 100, 0.5 = 50%, 0 = 0% (1)
server.bulletdamage                  Changes the bullet damage in percent - 1 = 100, 0.5 = 50%, 0 = 0% (1)
server.bleedingdamage                Changes the bleeding damage in percent - 1 = 100, 0.5 = 50%, 0 = 0% (1)
server.meleearmor                    Changes the scale of protection against melee damage from clothing and armor in percent - 1 = 100, 0.5 = 50%, 0 = 0% (1)
server.arrowarmor                    Changes the scale of protection against arrow damage from clothing and armor in percent - 1 = 100, 0.5 = 50%, 0 = 0% (1)
server.bulletarmor                   Changes the scale of protection against bullet damage from clothing and armor in percent - 1 = 100, 0.5 = 50%, 0 = 0% (1)
server.bleedingarmor                 Changes the scale of protection against bleeding damage from clothing and armor in percent - 1 = 100, 0.5 = 50%, 0 = 0% (1)
server.updatebatch                   How many entity updates should we send per loop. Setting this > 1000 might cause lag when a player first joins your server. (128)
server.planttick                     Plants tick every x seconds. This is how many seconds between ticks. (60)
server.planttickscale                Setting this to 2 will make plants grow, fruit and die two times faster than normal. (1)
server.respawnresetrange             Distance from sleeping bag to reset other sleeping bags/beds. (50)
server.maxunack                      Max amount of unacknowledged messages before we assume we're congested (4)
server.maxflood                      Max amount of ticks to receive per second before we assume a client is flooding us (1000)
server.netcache                      Use network caching (True)
server.netcachesize                  Informational, the size of the network cache (in bytes) (2214666)
server.savecachesize                 Informational, the size of the save cache (in bytes) (2264944)
server.combatlogsize                 The size of the combat log (100)
server.idlekick                      Number of minutes until idle players are kicked (30)
server.idlekickmode                  0 = no idle kick, 1 = kick if server full, 2 = always kick (1)
server.idlekickadmins                1 = admins can get idle kicked (0)
server.maxreceivetime                no description (20)
server.compression                   no description (False)
server.netlog                        no description (False)
spawn.min_rate                       no description (0,2)
spawn.max_rate                       no description (2)
spawn.min_density                    no description (0,2)
spawn.max_density                    no description (2)
stability.verbose                    no description (0)
stability.strikes                    no description (10)
stability.collapse                   no description (0.05)
stability.accuracy                   no description (0.001)
time.fixeddelta                      Fixed delta time in seconds (0.0625)
time.maxdelta                        The minimum amount of times to tick per frame (0.33)
vis.damage                           Turns on debug display of damages (False)
vis.attack                           Turns on debug display of attacks (False)
vis.protection                       Turns on debug display of protection (False)
vis.weakspots                        Turns on debug display of weakspots (False)
vis.triggers                         Show trigger entries (False)
vis.hitboxes                         Turns on debug display of hitboxes (False)
vis.lineofsight                      Turns on debug display of line of sight checks (False)
xmas.enabled                         no description (True)
xmas.spawnrange                      no description (50)
xmas.giftsperplayer                  no description (2)
rcon.print                           If true, rcon commands etc will be printed in the console (False)
find                                 Search for a command
status                               Print out currently connected clients
stats                                Print out stats of currently connected clients
kick                                 Kicks a player from the server. usage: kick {playername} {reason} example: kick Frank "stop crying"
kickall                              Kicks everyone from the server.
ban                                  Permanently bans a player from the server. usage: ban {playername} {reason} example: ban Frank "stop crying"
moderatorid                          ( void ) no description
ownerid                              ( void ) no description
removemoderator                      ( void ) no description
removeowner                          ( void ) no description
banid                                ( void ) no description
unban                                ( void ) no description
players                              Print out currently connected clients etc
say                                  Sends a message in chat
users                                Show user info for players on server.
banlist                              List of banned users (sourceds compat)
banlistex                            List of banned users - shows reasons and usernames
listid                               List of banned users, by ID (sourceds compat)
mutevoice                            no description
unmutevoice                          no description
mutechat                             no description
unmutechat                           no description
playerlist                           Get a list of players
bans                                 List of banned users
serverinfo                           Get a list of information about the server
batching.refresh_colliders           no description
batching.status                      no description
chat.tail                            Return the last x lines of the console. Default is 200
chat.search                          Search the console for a particular string
console.tail                         Return the last x lines of the console. Default is 200
console.search                       Search the console for a particular string
data.export                          no description
flushgroup                           Takes you in and out of your current network group, causing you to delete and then download all entities in your PVS again
breakheld                            Break the current held object
breakitem                            Break all the items in your inventory whose name match the passed string
hurt                                 Damage yourself
entity.debug_toggle                  no description
entity.nudge                         no description
entity.create                        Create entities, you must be playing in the server, use F1 to open console. Example entity list: http://text-share.com/view/43244684
env.addtime                          Add (in hours) time to spawn choppers / airdrops without changing the server in-game time
gc.collect                           no description
gc.unload                            no description
global.restart                       Restart the server - with x seconds warning. If no seconds given, server restarts after 5 minutes. (300 seconds)
global.quit                          Stops the server and closes the command prompt.
global.report                        no description
global.objects                       no description
global.textures                      no description
global.colliders                     no description
global.error                         no description
global.queue                         no description
global.sleep                         no description
global.injure                        no description
global.spectate                      no description
global.teleport                      no description
global.teleport2me                   no description
global.teleportany                   no description
global.teleportpos                   no description
global.cleanup                       no description
global.version                       no description
global.sysinfo                       no description
global.breakitem                     no description
heli.drop                            Spawns a helicopter at a specific players posititon (heli.drop <steamid 64 bit, steam name>)
heli.calltome                        Forces a helicopter to spawn off map and fly to your position
heli.call                            Calls in a helicopter to roam the map like normal
heli.strafe                          Forces helicopter to target a specific player (heli.strafe <steamid 64 bit, steam name>)
hierarchy.ls                         no description
hierarchy.cd                         no description
hierarchy.del                        no description
inventory.give                       no description
inventory.giveall                    no description
inventory.giveto                     no description
inventory.giveid                     no description
inventory.givearm                    no description
pool.print_memory                    no description
pool.print_prefabs                   no description
pool.print_assets                    no description
pool.clear_memory                    no description
pool.clear_prefabs                   no description
pool.clear_assets                    no description
server.stop                          Stops the server
server.backup                        Backup server folder
server.writecfg                      Writes config files
server.fps                           Prints current server fps
server.save                          Force save the current game
server.readcfg                       no description
spawn.fill_populations               no description
spawn.fill_groups                    no description
spawn.report                         Prints some information about entities already spawned on the server
weather.clouds                       no description
weather.fog                          no description
weather.wind                         no description
weather.rain                         Modify rain intensity, values between 0-100 (auto)
xmas.refill                          no description
global.dump                          no description

Ban list

Banned users will be stored in cfg/bans.cfg.

Linux Scripts Resources

LinuxGSM Rust Server

Linux Game Server Managers

LinuxGSM is the command line tool for quick, simple deployment and management of dedicated game server, using SteamCMD.

Features

  • Backup
  • Console
  • Details
  • Installer (SteamCMD)
  • Monitor
  • Alerts (Email, Pushbullet)
  • Update (SteamCMD)
  • Start/Stop/Restart server

Supported Servers

There are now 70+ different game servers supported and rising. For a full list visit the website.

Links

Website: https://linuxgsm.com/lgsm/rustserver/

GitHub Repo: https://github.com/GameServerManagers/LinuxGSM

Windows Resources

Rust Server Manager [PAID]

Rsmfmx.png

Rust Server Manager is a premium tool to help you create and manage your dedicated Rust Servers. It provides you with all the tools that you need to set up and manage your rust server.

Features

  • Graphical Config Editor with more server options.
  • Server Installer (Multi Branch support).
  • Server Updater (Update your server manually or automatically).
  • Server Verify (Verify your server files if you think something is missing).
  • Wipe Manager (Wipe your server along with the chosen data to wipe).
  • uMod / Oxide support.
  • Full uMod / Oxide Control (Config editor, plugin editor, plugin config editor).
  • Plugin Updater.
  • Joining List — Get and manage a list of player joining your server.
  • Queued List — Get and manage players in queue to join your server.
  • Player Manager — Manage online and offline players
  • The list of features are too long to add here but there is a (probably outdated) list on the website: https://rustservermanager.com/

Compatible With:

  • Windows 10, 8.1, 8 and 7.
  • Windows Server 2016, 2012 and 2008. (2008 untested)

Buy Here: https://rustservermanager.com/

Other

Facepunch’s online rcon client

  • https://facepunch.github.io/webrcon/#/home

Для настройки клиентского ПО требуется первоначальная установка программы RustDesk под вашу операционную систему:

1) Выбор дистрибутива под вашу ОС:


b_windows.png b_mac.png b_ubuntu.png b_android.png



2) После установки Вам потребуется ввести информацию о нашем сервере.

Для этого в открытой программе радом с «ID» нажимаем на троеточие, в появившемся меню выбираем ID/Сервер ретрансляции (ID/Relay Server)

server-set-menu.png

3) Ввод данных о сервере.

ID-Сервер (ID-Server): rd.albion-it.ru

Сервер ретрансляции (Server Relay): rd.albion-it.ru

API-Сервер (API-Server): https://rd.albion-it.ru

Key: ncZXc7MSmyBTzG3AYpEUCwQjO28qFFeGmjzKP2VCb2E= 

Screenshot_5.png



Установка и настройка в полуавтоматическом режиме.

Windows PowerShell


1) Открыть меню пуск и набрать в строке поиска PowerShell, запустить от прав Администратора, нажав правой кнопкой мыши на значке программы.



2) В открытом от прав Администратора PowerShell ввести команду:

Set-ExecutionPolicy Bypass и нажать в английской раскладке букву А (Да для всех)

Screenshot_6.png

3) Далее не закрывая окна PowerShell скачать скрипт в архиве *.zip, по ссылке на диск С:/ если скачали в другое место нужно скопировать его с того места куда он был скачан на диск C:/. Файл скрипта требуется разархивировать на диск C:/


4) После скачивания и разархивирования в корень диска C:/ пишем в окне название скрипта, который мы скачали и запускаем его, нажав Enter, после чего программа автоматически с качается, установится, и самостоятельно настроится.

C:/WindowsAgentAIOInstall.ps1

Screenshot_7.png

По завершению работы скрипта наш сервер выдаст вам RustDesk-ID номер, по которому мы можем к вам подключится, используя пароль, который обновляется по правилам безопасности, а также сам первый пароль RustDesk-Password, после выполнения скрипта окно PowerShell можно закрыть, и в меню «Пуск» увидеть установленную программу RustDesk.



Установка и настройка в автоматическом режиме.


Windows PowerShell

1) В открытом от прав Администратора PowerShell ввести команду:
Set-ExecutionPolicy Bypass и нажать в английской раскладке букву А (Да для всех)

2) Cкачать скрипт в архиве *.zip, по ссылке на диск С:/ если скачали в другое место нужно скопировать его с того места куда он был скачан на диск C:/. Файл скрипта требуется разархивировать на диск C:/

3) После скачивания и разархивирования в корень диска C:/ пишем в окне название скрипта, который мы скачали и запускаем его, нажав Enter, после чего программа автоматически с качается, установится, и самостоятельно настроится.

C:/rd-albion.ps1

Screenshot_4.png

По завершению работы скрипта наш сервер выдаст вам RustDesk-ID номер, по которому мы можем к вам подключится, используя пароль, который обновляется по правилам безопасности, а также сам первый пароль RustDesk-Password, после выполнения скрипта окно PowerShell можно закрыть, и в меню «Пуск» увидеть установленную программу RustDesk.

После завершения настройки вы можете сообщить нам свой ID для удаленного решения любый ваших задач, в удаленном формате.

RustDesk — это приложение, предлагающее нам практически те же функции, что и в TeamViewer, AnyDesk или Windows Удаленный рабочий стол, но главное преимущество — это бесплатное приложение с открытым исходным кодом.

Создайте свой собственный бесплатный TeamViewer с помощью RustDesk

RustDesk представлен как одна из лучших альтернатив, доступных для Windows и Linux к известному TeamViewer. Это приложение с открытым исходным кодом, большое сообщество пользователей доступны через Reddit, Discord и GitHub, которые шифруют сквозные соединения.

Это позволяет пользователям создать свой сервер для установления соединений или использования одного из общедоступных серверов, которые приложение предоставляет нам. Если мы хотим создать свой собственный сервер, если мы не доверяем безопасности, предлагаемой Ржавчина стол, мы должны загрузить дополнительное приложение.

Помимо того, что он доступен для Windows и Linux, он также работает на macOS и iOS/iPadOS и Android мобильные устройства.

Какие функции он предлагает?

RustDesk — интересная альтернатива TeamViewer, поскольку она предлагает нам практически те же функции, что и старое приложение для удаленного доступа.

Удаленный доступ к рабочему столу

С RustDesk мы можем удаленный доступ пользовательский интерфейс, как если бы мы были физически перед ним, но с учетом того, что, в зависимости от скорости соединения, действия могут занять больше или меньше времени, чтобы отразиться на нашем экране, а не на удаленном компьютере.

Пользовательский контроль

В то время как TeamViewer предлагает только один тип доступа, по крайней мере, в бесплатной версии, с RustDesk мы можем создать разные типы пользователей , каждый из которых имеет разные типы доступа к команде, к которой они подключены. Таким образом ограничивается взаимодействие самых неопытных пользователей или пользователей с ограниченным доступом.

Делиться файлами

Совместное использование файлов между двумя командами — одна из функций, которые приложение RustDesk также предоставляет нам. Эта функция, которая также доступна в TeamViewer, позволяет нам передавать большие файлы не прибегая к таким платформам, как WeTransfer и им подобным, платформам хранения, FTP-серверам

Многоплатформенная

Один из самых интересных моментов этого приложения, не говоря уже об интересных функциях, которые оно нам предлагает, заключается в его мультиплатформенной поддержке. RustDesk доступен для Windows в 32-битной и 64-битной версиях, для Linux, macOS, iOS/iPadOS и Android .

Кроме того, также доступна портативная версия, версия, совместимая с Windows только на компьютерах с 64-разрядными версиями.

Сквозное шифрование

Как и любая платформа для обмена сообщениями, которая обеспечивает сквозное шифрование сообщений, RustDesk также шифрует соединения между компьютерами которые делают связь. Таким образом, друзья инопланетянина не смогут расшифровать все данные, которые циркулируют между обоими компьютерами.

большое сообщество

Чтобы приложение с открытым исходным кодом было успешным, сообщество должно его поддерживать. В случае с RustDesk мы можем найти очень большое сообщество пользователей, сообщество, которое мы можем найти через Discord , Отредактировать и GitHub.

Как это работает

Из-за ограничений Windows на некоторых компьютерах через контроль учетных записей (UAC) переносная версия предлагает нам установить приложение для Windows вместо использования этой версии. Если у вас не возникнет проблем с производительностью, мы можем без проблем использовать эту версию.

В процессе установки нет никакой тайны. Нам просто нужно указать путь, куда мы хотим установить приложение, поставить соответствующие галочки, если мы хотим создать прямой доступ и доступ к приложению с рабочего стола и нажать на кнопку Принять и установить кнопку.

Вы закончили работу с приложением, оно откроется автоматически и покажет нам интерфейс, разделенный на три раздела:

Интерфаз RustDesk

Ваш рабочий стол

Идентифицировано с нашего компьютера через общедоступные серверы RustDesk вместе с соответствующим паролем, паролем, который мы можем автоматически изменить на новый или установить тот, который мы хотим использовать, щелкнув значок карандаша.

Удаленное управление рабочим столом

Удаленное подключение к компьютеру . Этот раздел расположен в правой части окна приложения. Чтобы удаленно подключиться к компьютеру с помощью общедоступных серверов RustDesk, мы должны ввести идентификатор целевого компьютера и нажать «Подключиться». Далее приложение запросит пароль доступа компьютера, к которому мы собираемся подключиться.

RustDesk

Если мы хотим передавать файлы вместо использования удаленного подключения к рабочему столу другого компьютера, вместо нажатия кнопки «Подключиться», мы нажимаем кнопку «Передать файл». Затем он запросит у нас пароль компьютера, с которого мы хотим передавать файлы, и откроет панель, аналогичную панели FTP-приложений, откуда мы можем передавать файлы между двумя компьютерами.

Передача архивов RustDesk

консоль журнала

Через этот раздел мы можем получить доступ ко всем соединениям, которые мы установили с другими компьютерами. Кроме того, это также позволяет нам создавать адресную книгу других компьютеров и устанавливать ряд избранных соединений. Если количество оборудования, которое мы храним, очень велико, мы можем использовать окно поиска по ID.

Скачай бесплатно

Использование и загрузка как клиента RustDesk в его клиентской версии для использования общедоступного сервера, так и версии, позволяющей нам создать собственный сервер, совершенно бесплатны. Из RuskDesk веб-сайт Честного ЗНАКа , вы можете скачать клиентское приложение по адресу:

  • Windows 10 и Windows 11 в 64-битной версии
  • Windows 7,8.X и Windows 10 в 32-разрядной версии
  • Портативная версия для Windows
  • MacOS
  • ОС iOS/iPad
  • Android

В этот GitHub ссылка, вы можете найти последние доступные версии RustDesk для всех операционных систем, в которых он доступен.

На момент публикации этой статьи приложение для создания собственных серверов RustDesk для Windows и Linux в настоящее время доступно только в 64-битных версиях, версии, которые вы можете скачать по этой ссылке. ссылке .

альтернативы

  • Windows Remote Desktop — идеальное решение для пользователей, которые хотят подключаться только к компьютерам под управлением Windows, если на удаленном компьютере установлена ​​Pro-версия Windows.
  • TeamViewer , старейшее кроссплатформенное командное приложение для удаленного подключения в мире вычислительной техники, доступное бесплатно на его веб-сайте. веб-сайт Честного ЗНАКа для некоммерческого использования.
  • AnyDesk — еще одна интересная альтернатива RustDesk, которая, как и TeamViewer, предлагает нам бесплатную версию для некоммерческого использования. с веб-сайта .

Skraćena veza: https://pedja.supurovic.net/veza/10515

RustDesk remote desktop

RustDesk (https://rustdesk.com/ , https://github.com/rustdesk ) is Open source virtual/remote desktop software like TeamViewer or AnyKey. It is on par with them in functionality, except that RustDesk is Open software, meaning free. It gains large popularity, as it does job well, and especially because commercial alternatives became unreasonably expensive unacceptable for noncommercial or low profile use.

Actually, there is one more big difference – You can host RustDesk on your own. This makes you independent from third parties. It makes it even more favorable.

Author of RustDesk actually recommends using self hosted servers for simple reason – public servers that are available, and free to use, actually do cost money. Switching to self hosted servers lowers costs of public servers.

How it works

Simplified said, you run two RustDesk Clients so they connect to RustDesk host. If you want access to other client you have to use it’s ID to connect to it. All communication goes through RustDesk host. Clients can be behind NAT routers as they do not communicate directly, but they use connections to the host.

This of, course, can also work in local network, without need of Internet. There is also option that clients, if they realize they actually can see each other, switch to communicate directly, without use of a host.

Requirements

Being independent means you are becoming responsible for providing resources and availability of the service. For small scale needs, that is not huge requirements and is perfectly doable. What you must have is modest computer available to install server and reasonable Internet connection.

If you need to allow connections to your local server from public Internet, internet connection, public IP and options to set NAT are must. You also can alternatively use some small scale bare bone hosting or cloud service. Server works fine on Linux and Windows platforms.

What is needed

At RustDesk site you will find instructions for several ways to install server on supported platforms. I will be practical and focus on just one, that I did. As installation did not go smooth until I understand lots of stuff that were new to me, I am writing this down as notes to myself but I hope other could gain from it.

As RustDesk host should run as an service the first you need NSSM (Non-Sucking Service Manager). It’s name is appropriate. It really makes installing service easy and neat. You can get it from http://nssm.cc/ .

Other thing you need is actualy RustDesk server. You can get it from https://github.com/rustdesk/rustdesk-server/releases/tag/1.1.6. That is version that is actual now, but you should check if there is newer version. Beware that Windows compiled binaries are not promptly available for all versions.

Presumptions

Lets assume you have local network and you want to allow RustDesk clients to access each other both in public and local network. That means you have local Windows PC that will act as RustDesk server and internet connection with static public IP address. Local network is behind NAT router. You will use dedicated domain for service named rustdesk.mydomain.org. You have a router which allows you to set NAT rules and that also acts as DNS for local network with option to set static DNS entries.

Here are so many variations that can apply here so we will not go more into details. I assume that if you are going to install RestDesk server you know enough about networking, and can manage with information provided in this tutorial.

Installation

Installation goes in few steps.

Setting up network

Set up domain rustdesk.mydomain.org to point to public IP address assigned to your router. That would allow clients from internet to search for the server in your network. Lets assume that rustdesk.mydomain.org points to IP 94.214.56.108. That is address that all RustDesk clients located on Internet should connect to to access your self hosted RustDesk Server.

Make sure local computer, that is going to became server, is set to static IP address. It is important that that address does not change. You can do it by assigning IP in DHCP server on router or by assigning IP manually to the network interface on computer. Let’s assume that local IP is 192.168.1.4. That is address all RustDesk clients within local network should use to access your self hosted RustDesk Server.

Set NAT rules in router to forward incoming connections on TCP ports 21115 to 21119 and 8000 and UDP port 21116 to point to local IP address you assigned to the server computer.

Make static DNS entry in router that would point domain rustdesk.mydomain.org to local IP address you assigned to the server (assumed to be 192.168.1.4). This allows clients in your local network to also see the server on that domain. Although domain is the same, IP address they get would be different from IP that clients on the public Internet would see. What matters is that they deal with the same domain.

Possible simplification

You can simplify this settings if you set RustDesk server outside of your network, on some bare bone hosting or cloud server.  That way you will not have to deal with router, NAT and static DNS. Your server would have public IP, visible from everywhere, and you would simply point domain rustdesk.mydomain.org to that IP.

Unpacking

Create directory somewhere on the disk to store RustDesk server files. It may be any directory as long as it is accessible. Let’s say we choose it to be C:\RustDeskServer\.

Download NSMM and extract nsmm.exe to this directory. You will find 32bit and 64bit version in downloaded archive. Choose appropriate one. Just place nsmm.exe into C:\RustDeskServer\.

Downloaded archive of RustDesk server will contain just two files: nbbr.exe and nbbs.exe. Extract them both into C:\RustDeskServer\.

Setting up host

Open command prompt and position it to the install directory using command:

cd C:\RustDeskServer\

Install RustDesk router service first

nssm.exe install "RustDesk hbbr service" C:\RustDeskServer\hbbr.exe -k _

Then install Rendezvous server

nssm.exe install "RustDesk hbbs service" C:\RustDeskServer\hbbs.exe -r rustdesk.mydomain.org -k _

Note that you have to use full path to service executables.

Both services should install without error. Then you start them

nssm.exe start "RustDesk hbbr service"
nssm.exe start "RustDesk hbbs service"

And that is it. You installed RustDesk Server.

Check if there is firewall on computer that prevents accessing server ports (TCP ports 21115 to 21119 and 8000 and UDP port 21116). Those should be accessible from the local network and also from internet through the NAT router. For TCP ports you can simply try telnet to server address and chosen port. If it connects that means port is accessible. If one port is accessible, that usually means all ports are.

Side notes

When starting services there are two parameters used.

-k specifies that client must use public security key. Clients that do not have key or have wrong key would not be accepted.

If you omit this parameter when starting service, keys would not be required, or better say, they wold be ignored. All connections would be insecure.

However, to connect to specified self hosted server, client still has to have security key in file name. In that case key may be anything as it would be ignored. It is strongly recommended to enforce usage of security keys, like this tutorial shows.

-r specifies address of rendezvous server. It actually may be a list of servers. It seems that when client connects to host it returns this list of rendezvous servers for clients to use to connect to each other. In other tutorials I found out that ip address 0.0.0.0 is used for this purpose. I guess it has special meaning, maybe that rendezvous server is the same as router server.

Well, in this configuration with clients on both sides of NAT that 0.0.0.0 address does not work. Clients cannot connect to each other. I solved this by using domain instead of IP. As domain is set to point to different IP regarding if client is on Internet or in local network, that meant they all connected properly to rendezvous server and they could connect to each other.

As this parameter accepts list of addresses, it is possible that it would work if both public and local IP address are listed so that client would use one it can access. I did not test that way as I do not like hard coding IP addresses. I like to use domains instead.

I guess this is not an issue if RustDesk host is directly on public IP as then all clients would see it the same. Lets say this is quirk important for hosting RustDesk behind NAT.

Setting up RustDesk Client

RustDesk client has to be set up to access your self hosted RustDesk Server.

First, make sure you have no RustDesk Client installed. That is important! This cannot work with RustDesk client that is installed. You have to use Portable version. If you have installed RustDesk Client deinstall it (do not worry, you will not loose ID).

Download portable RustDesk Client from https://rustdesk.com/ and unpack rustdesk.exe (it would probably have version number in file name) wherever you want. Desktop would be fine. RustDesk Client version I did this with is 1.1.9.

RustDesk Client by default connects to the public host, but we need it to connect to our local host so we have to set it up. It is a bit unusual, but configuration is done by changing file name.

Filename should contain two information: address of the host and security key. Address of the host is domain we already prepared – rustdesk.mydomain.org.

To get a security key check content of the directory where server is located – C:\RustDeskServer\. Two new files should be there that are created when server was installed: id_ed25519 and id_ed25519.pub. Those are private and public keys for secure connection.

Open id_ed25519.pub in some text editor and copy line of character that is inside. That is security key. Lets say key looks like this: rvIZyRt2259R3OklpnjPHxKOruTuOJAYKG4fkdwKcNI=

Copy rustdesk.exe to a file with new name:

rustdesk-host=rustdesk.mydomain.org,key=rvIZyRt2259R3OklpnjPHxKOruTuOJAYKG4fkdwKcNI=.exe

Yes I know, looks odd, but that is how it is supposed to look. Now, when you run this program it will check it’s own exe name and extract address of the host and security key (That is interesting way to keep configuration within single file, right?).

So, you now can copy this file to any computer you want to use your RustDesk Server.

Important note: check if security key contains some characters that are not allowed to be used in Windows file name like ~ “ # % & * : < > ? / \ { | } or so. If it does contain such characters the you would not be able to name file.

To resolve this, stop RustDesk Server using these commands:

nssm.exe stop "RustDesk hbbr service"
nssm.exe stop "RustDesk hbbs service"

While they are stopped delete files id_ed25519 and id_ed25519.pub and then start services again.

nssm.exe start "RustDesk hbbr service"
nssm.exe start "RustDesk hbbs service"

That would create new files. Check content of id_ed25519.pub and if it is not suitable, just repeat process. Unsuitable characters show rarely.

So how to use it?

Using RustDesk Client with self hosted server is the same as with public server. The only difference is that you use different sever.

Remember, only clients connected to the same server can communicate. So when, you need to access someone else’s PC, just send to him file rustdesk-host=rustdesk.mydomain.org,key=rvIZyRt2259R3OklpnjPHxKOruTuOJAYKG4fkdwKcNI=.exe (of course your file would have different name) and let him use that to connect to your server.

Problems?

Well yes, there may be a problems. Due to way RustDesk Client works it is not possible to run two clients connecting different servers at the same time. Yes, you can run RustDesk Client multiple times and connect it to several remote clients at the same time as long as all are connecting to the same server.

Most usual issue is that someone already has installed RustDesk Client that connects to public server. If that is the case he must deinstall that client. If he needs to connect to public server too, he can just copy exe you provided into new file named rustdesk.exe. That one would be portable and it would connect to the public server. He just must may attention that he cannot have running two clients connected to self hosted and public server at the same time. One that is run first would work, other one would go crazy.

Once RustDesk Client is started it is hart to tell which one it is. There is no visual clues to let you know which server you are connected to. You may check About option, but it just shows if it is configured to use private server, but not that it is actually using it. I hope, author would deal with this in the future releases.

If you meet some other issue, it may help to check configuration and logs of RustDesk Client they are located in directory %appdata%\RustDesk.

Slični članci

  • Runtime pack для windows 10 скачать
  • Russian windows xp mui russian скачать
  • Run windows app from cmd
  • Rundll32 грузит процессор windows 7
  • Russian tweak reg для windows 10