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 ?

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


  1. Tirarex
    22.01.2025 09:32

    Хорошая статья! Пользуюсь Rustdesk уже много лет, стабильно, достаточно быстро, очень удобно. Рад что заранее ушел с тимвивера.


    1. Arhangel12
      22.01.2025 09:32

      Эта хрень с Вэйландом работает?


      1. PRODIGY
        22.01.2025 09:32

        Подключать с вэйланд да, к сессии на выйланд тебе нет. В клиенте сразу пишет об этом.


    1. hochbar
      22.01.2025 09:32

      Какие ограничения бесплатной версии для самохостинга?


      1. CorruptotronicPervulator
        22.01.2025 09:32

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


        1. CptAFK
          22.01.2025 09:32

          То есть ничем не отличается от rms и litemanager, ключ на который стоит копейки.


  1. 13werwolf13
    22.01.2025 09:32

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


    1. DustHumia
      22.01.2025 09:32

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


    1. hochbar
      22.01.2025 09:32

      У них же есть и публичный сервер


      1. 13werwolf13
        22.01.2025 09:32

        с которым клиент перестаёт работать когда прописываешь ему свой персональный. всегда конечно можно поменять вручную, но это лишние действия (ЕМНИП около 7ми действий) которые нервируют


  1. Menma
    22.01.2025 09:32

    Как вы вовремя опубликовали. Понравилась скорость и ценник, да и комп не нагружает особо. AnyDesk неплохо, на грузил больше и денег много хотел. Буду внедрять.


    1. AlexanderS
      22.01.2025 09:32

      Есть еще LiteManager, которому уже лет 20 наверное со своим автономным решением сервера NoIP. Из относительно недавних ещё есть Aspia. Выбирать есть из чего)


      1. hochbar
        22.01.2025 09:32

        А они же через серый ip не пробиваются?


        1. AlexanderS
          22.01.2025 09:32

          Так без сервера синхронизации рассматриваемый в статье вариант за NAT тоже работать не будет.


        1. Anatoliy_rnd
          22.01.2025 09:32

          Ну если свой сервер noip организуете то все работает. Там была давно какая-то проблема если использовать общий сервер noip, не с доступом а с безопасностью.


  1. vviz
    22.01.2025 09:32

    А мне Аspia зашла...


  1. Asurend
    22.01.2025 09:32

    Спасибо автору! Как раз то что мне нужно было!


  1. n1kk0777
    22.01.2025 09:32

    Всем привет, подскажите это можно назвать альтернативой для Moonlight+Sunshine для игр?


    1. SY573M_404
      22.01.2025 09:32

      Нет, упомянутые 3 Мбит/с - смешно для задач стриминга. Да и управление едва ли оптимизировано для этого. А почему этой связке требуется альтернатива?


  1. SlavikF
    22.01.2025 09:32

    Я использую guacamole.

    https://guacamole.apache.org/

    У RustDesk слишком много всего закрытого или платного.


  1. sovid
    22.01.2025 09:32

    Прикол в том что российский софт под название RuDesktop сделан на основе RustDesk и работает не так конечно хорошо, но есть куда двигаться.


  1. Ryav
    22.01.2025 09:32

    С Wayland работает без проблем?


  1. Measurer01
    22.01.2025 09:32

    Минималистичные серверы ценой от 139 руб. в месяц находятся в разделе VPS Старт. Для RustDesk такого достаточно:

    Ага. До ваших Старт серверов вечером скорость падает до 1-2 Мбит/с. Сами же говорите, что не гарантируете скорость до таких серверов.


  1. werter_l
    22.01.2025 09:32

    SctgDesk Server Program https://github.com/sctg-development/sctgdesk-server
    This is a modified version of RustDesk Server, which is free and open source.
    
        The first difference is that this version includes the new tcp mode included in the RustDesk Server Pro version.
        The second difference is that this version includes a preliminary implementation of the Rustdesk Server Pro API server.
            Support for personal address book
            Support for shared address book at group level
                read-only, read-write, admin
            Support for shared address book at user level
                read-only, read-write, admin
        The third difference is that this version includes a preliminary implementation of a simple webconsole.