RustDesk — приложение для удалённого рабочего стола с открытым исходным кодом, разработанное для самохостинга в качестве альтернативы TeamViewer. Название такое, потому что программа написана на Rust.

Работает из коробки, не требует конфигурации. Если установить сервер синхронизации на своём хостинге, то любые машины в интернете могут синхронизироваться и устанавливать соединение через наш сервер для удалённого управления рабочими столами друг друга. Трафик идёт напрямую между ними, но если это невозможно — тоже через сервер, до 3 Мбит/с (1920×1080).

Клиентское приложение есть для iOS и Android (на КДПВ), что позволяет со смартфона управлять рабочим столом Windows, Linux и MacOS (и наоборот), а также обмениваться файлами. Есть ещё веб-клиент.

Нужно заметить, что серверный компонент RustDesk распространяется с закрытым исходным кодом, что даёт возможность компании взимать плату за его использование (даже на самохостинге, без SaaS). У бесплатной опенсорсной версии ряд ограничений:



В документации описана установка и использование RustDesk в контейнере Docker, на свой сервер под Windows с PM2 или NSSM, на Synology DSM 7.2 и DSM 6, Ubuntu Server, а также Ubuntu Server с Docker. Всё это доступные варианты самохостинга.

Будем устанавливать серверную версию для Ubuntu Server.

Как обычно, выбираем подходящую конфигурацию сервера в конфигураторе RUVDS или из готовых шаблонов. Минималистичные серверы ценой от 139 руб. в месяц находятся в разделе VPS Старт. Для RustDesk такого достаточно:



Аппаратные требования серверного модуля RustDesk очень низкие. В документации сказано, что можно выбирать VPS минимальной конфигурации, а также использовать в качестве сервера Raspberry Pi или другой одноплатник. Что касается канала, то при сбое прямого соединения TCP hole punching трафик пойдёт через сервер ретрансляции. Трафик ретрансляционного соединения составляет от 30 Кбит/с до 3 Мбит/с (разрешение экрана 1920×1080) в зависимости от настроек разрешения и частоты обновления экрана. Для офисной работы достаточно 100 Кбит/с.

На Ubuntu Server есть два способа установки RustDesk: в контейнере Docker или путём обычной установки .deb. Начинающим пользователям рекомендуется использовать контейнер, потому что там достаточно просто скопировать compose.yml, внести некоторые изменения — и всё готово. Свежие контейнеры Docker в репозитории автоматически генерируются при каждом релизе, после чего публикуются в Docker Hub и GitHub Container Registry. Есть два типа контейнеров:

  • классические образы под архитектуры amd64, arm64v8, armv7
  • образы на базе S6-overlay с добавлением бинарных файлов

Но в таком случае минимальной конфигурации VPS будет недостаточно, потому что виртуальной машине на самохостинге нужно минимум 1 ГБ RAM и 32 ГБ места на диске.

▍ Установка скриптом


Что касается простой установки на чистом Linux, то можно использовать специальный инсталляционный скрипт, который проверен под CentOS Linux 7/8, Ubuntu 18/20/22/24 и Debian.

Его мы и используем в первую очередь.

На VPS-сервере после его включения уже установлена операционная система Ubuntu 24.04, а нам выдали IP-адрес и учётные данные для авторизации:



Дальнейший алгоритм действий:

  1. Подключаемся к серверу стандартным способом по SSH:



    Устанавливаем файрвол UFW (стандартный вариант для систем на базе Debian):

    apt-get install ufw



  2. Настраиваем порты файрвола:

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



    (Теоретически, сначала на файрволе надо открыть порт 22 для SSH, но на нашем VPS от RUVDS он изначально открыт).

  3. Запускаем инсталляционный скрипт:

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

    Скрипт устанавливает все необходимые программы и зависимости, а потом спрашивает о предпочтительном методе подключения к серверу: IP-адрес или домен.



    Выбираем IP-адрес.

    Потом предлагает скачать файлы конфигурации и установить HTTP-сервер:



    Можно согласиться.

  4. Установка сервера завершена с выдачей публичного ключа, админского логина и пароля:


▍ Установка клиентов




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

Your IP/DNS Address is 194.87.103.130
Your public key is 1AQBKNnylHs9ZEq32I2Axl51MJtCNp0Reqngdlu4Hvg=
Install Rustdesk on your machines and change your public key and IP/DNS name to the above
You can access your install scripts for clients by going to http://194.87.103.130:8000
Username is admin and password is 5EIpg7IAH07YYujc

Если зайти к себе на сервер по адресу http://194.87.103.130:8000 с админским паролем, то там лежат скрипты для установки клиентов под Linux и Windows, в том числе PowerShell-скрипт WindowsAgentAIOInstall.ps1 для установки клиента RustDesk под Windows.



Запускаем скрипт на исполнение. Под Windows установка занимает десяток секунд, после чего открывается окно для управления рабочим столом:



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

Примечание. Десктопные версии RustDesk используют библиотеку Flutter или Sciter (устаревшую) для GUI, вторую в случае необходимости придётся скачать отдельно: Windows | Linux | macOS.

В репозитории Techahold есть ещё скрипт для обновления RustDesk, он может пригодиться в будущем:

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

Установка RustDesk на Ubuntu Server, видеоруководство:

▍ Сборка вручную


Инструкции по сборке см. в официальном репозитории rustdesk-server:

cargo build --release

Эта команда генерирует три исполняемых файла:

  • hbbs — сервер RustDesk ID/Rendezvous
  • hbbr — сервер ретрансляции RustDesk
  • rustdesk-utils — консольные утилиты RustDesk

Отдельно распространяются платная версия RustDesk Server Pro и упрощённая демо-версия rustdesk-server-demo, предназначенная для создания собственных реализаций RustDesk.

У платной версии есть ряд дополнительных опций, по сравнению с бесплатной: в том числе веб-консоль (на порту 21114), через которую можно управлять всеми клиентами, где мы установили RustDesk.





В платной версии для самохостинга есть 2FA, контроль доступа, централизованные настройки и функция распределённых рилей-серверов.

▍ Установка из файла


Скачиваем файлы .deb из раздела Download
в официальном репозитории и устанавливаем командой:

apt-get -f install <filename>.deb

или

dpkg -i <filename>.deb

В этом же разделе лежат исполняемые файлы сервера под Linux и Windows, консольные утилиты и проч.

Если возникают проблемы с пробитием файрвола, см. отдельную статью, где описана настройка технологии NAT Loopback на маршрутизаторе и установка локального DNS-сервера.

▍ P2P Remote Desktop


В качестве бонуса можно упомянуть ещё P2P Remote Desktop: P2P-удалённый десктоп, тоже альтернатива TeamViewer/AnyDesk. Эта портативная программа для Windows работает предельно просто: просто копируем рабочий файл p2p.exe на оба компьютера, которые планируется подключить друг к другу.


Затем на одном из компьютеров нужно скопировать My Wan IP (и порт) или My Lan IP — и передать его на второй, а со второго на первый.


Теперь на каждом из узлов указано по два IP-адреса, так что подключаемся: на обоих ПК нажимаем Connect. После установления связи прямой пиринговой можно обмениваться текстовыми сообщениями или управлять рабочим столом удалённого компьютера, для этого предназначена кнопка Desktop.


Для работы используется протокол UDT, и он должен пробивать большинство файрволов.


Наверное, это самая простая программа для удалённого управления рабочим столом, хотя тут тоже используется промежуточный сервер для синхронизации. Тем не менее, это минималистичная и бесплатная программа.

Из других более-менее рабочих опенсорсных альтернатив TeamViewer можно упомянуть Remotely, Screego и MeshCentral+Tactical RMM.

© 2025 ООО «МТ ФИНАНС»

Telegram-канал со скидками, розыгрышами призов и новостями IT ?

Комментарии (4)