Удельта

Пошаговая инструкция · Самостоятельная установка

Как установить RustDesk Server OSS и подключить компьютеры

Пошаговая инструкция для самостоятельной установки. Развернём собственный сервер идентификации и ретрансляции RustDesk на Ubuntu 26.04. Подключим два клиента, проверим прямое соединение и relay, затем сохраним серверные ключи и данные.

Удалённое управление двумя компьютерами через собственный ретранслятор

Что подготовить и как читать инструкцию #

Нужен сервер Ubuntu 26.04 с постоянным IP, sudo, Docker Engine и Compose. Для имени rd.example.com создайте A на этот сервер. AAAA добавляйте только при рабочем IPv6. Выбирайте расположение по задержке до ваших компьютеров и канал по числу одновременных сеансов через relay.

Эта статья использует бесплатный Server OSS: hbbs помогает клиентам найти друг друга, hbbr передаёт трафик, если прямое соединение не получилось. Веб-консоль администратора, каталог устройств и корпоративное управление относятся к Server Pro и в этой схеме не появляются.

Команды выполняйте в терминале сервера после подключения по SSH, если шаг не указывает другое место. sudo даёт команде права администратора. Действия в браузере выполняйте на своём компьютере. Домены, IP-адреса и значения ВАШ_ПАРОЛЬ из примеров заменяйте своими до выполнения команды.

Двигайтесь по одному шагу и проверяйте результат перед следующим. Блок с <<EOF или другим именем завершения копируйте целиком: он записывает содержимое одного файла. При работе в nano сохраняйте файл клавишами Ctrl+O, Enter и выходите Ctrl+X. Если прервали SSH-сеанс, снова перейдите в указанный каталог; переменные предыдущего сеанса потребуется задать заново.

Шаг 1. Направьте имя RustDesk на сервер #

Создайте A-запись rd.example.com с публичным IPv4. В этой схеме используются обычные настольные клиенты; HTTPS-сайт и веб-клиент не настраиваем.

Направьте имя RustDesk на сервер
getent ahostsv4 rd.example.com

DNS возвращает IP сервера.

Шаг 2. Разрешите SSH перед firewall #

Сохраняем доступ OpenSSH, затем задаём запрет остальных входящих соединений. Если SSH-порт изменён, разрешите его явно вместо стандартного профиля.

Разрешите SSH перед firewall
sudo ufw allow OpenSSH
sudo ufw default deny incoming

Ваш SSH-порт разрешён.

Шаг 3. Откройте порты RustDesk #

21115/21116 помогают клиентам находить друг друга, 21117 нужен relay при невозможности прямого соединения. Те же правила нужны у провайдера.

Откройте порты RustDesk
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw enable
sudo ufw status verbose

Включённый UFW разрешает указанные TCP и UDP; вход во втором SSH-окне работает.

Шаг 4. Создайте постоянный каталог данных #

Ключи сервера будут в data. Эта папка нужна после пересоздания контейнеров и при восстановлении.

Создайте постоянный каталог данных
mkdir -p "$HOME/services/rustdesk/data"
cd "$HOME/services/rustdesk"
chmod 700 data

Вы в ~/services/rustdesk; data защищён от постороннего чтения.

Шаг 5. Сохраните Compose #

Откройте nano compose.yaml, вставьте YAML и замените rd.example.com своим доменом. hbbs — служба ID, hbbr — relay для передачи соединения. Оба используют один каталог ключей.

Сохраните Compose
services:
  hbbs:
    image: rustdesk/rustdesk-server:1.1.16
    command: [hbbs, -r, rd.example.com:21117, -k, _]
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./data:/root
  hbbr:
    image: rustdesk/rustdesk-server:1.1.16
    command: [hbbr, -k, _]
    restart: unless-stopped
    network_mode: host
    volumes:
      - ./data:/root

Домен в параметре -r правильный; версия обоих контейнеров одинакова.

Шаг 6. Проверьте конфигурацию #

Проверим YAML до загрузки. Host networking использует порты сервера напрямую, поэтому правила предыдущего шага обязательны.

Проверьте конфигурацию
docker compose config --quiet

config --quiet завершился без ошибки.

Шаг 7. Скачайте образы #

Загружаем официальный RustDesk Server OSS выбранной версии. Пока не меняем клиентские настройки.

Скачайте образы
docker compose pull

pull завершился успешно.

Шаг 8. Запустите службу ID #

Сначала запускаем hbbs, который создаст ключи. Дождитесь его запуска и посмотрите журнал.

Запустите службу ID
docker compose up -d hbbs
docker compose logs --tail=50 hbbs

hbbs работает без постоянных перезапусков.

Шаг 9. Проверьте появление публичного ключа #

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

Проверьте появление публичного ключа
# Продолжайте после появления файла, не создавайте его вручную:
sudo test -s data/id_ed25519.pub

Команда завершилась без ошибки; data/id_ed25519.pub существует.

Шаг 10. Запустите relay #

hbbr использует тот же data, поэтому идентичность сервера для обеих служб согласована. Посмотрим состояние и журнал.

Запустите relay
docker compose up -d hbbr
docker compose ps
docker compose logs --tail=50 hbbr

Обе службы работают без ошибок чтения ключей.

Шаг 11. Скопируйте публичный ключ #

Публичный id_ed25519.pub нужен клиентам для проверки вашего сервера. Соседний id_ed25519 — приватный; его не копируйте в клиент или чат.

Скопируйте публичный ключ
sudo cat data/id_ed25519.pub

Сохранена одна строка публичного ключа.

Шаг 12. Настройте два клиента #

На двух компьютерах установите официальный RustDesk. В настройках Network → ID/Relay Server укажите rd.example.com для ID, rd.example.com:21117 для relay и сохранённый публичный ключ в Key. На удалённом устройстве подтвердите способ разрешения доступа.

Оба клиента показывают готовность собственного сервера; их ID доступны.

Шаг 13. Проверьте реальное соединение #

Соедините компьютеры через собственные ID. Хотя бы одно устройство подключите через другую сеть. Проверьте экран, ввод и передачу тестового файла; при необходимости отдельно проверьте работу через relay.

Соединение установлено, файл передаётся; доступ требует согласованного подтверждения или пароля.

Шаг 14. Сверьте сервер, порты и DNS #

При ошибке соединения начните с этих проверок. Совпадение ключа клиента с сервером важно так же, как доступный relay-порт.

Сверьте сервер, порты и DNS
cd "$HOME/services/rustdesk"
docker compose ps
docker compose logs --since=15m hbbs hbbr
sudo ss -lntup | grep -E ":2111[5-9]"
getent ahostsv4 rd.example.com

Обе службы работают, нужные порты слушают, DNS верный.

Шаг 15. Подготовьте копию ключей #

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

Подготовьте копию ключей
cd "$HOME/services/rustdesk"
sudo install -d -m 700 /var/backups/rustdesk
docker compose stop hbbs hbbr

hbbs/hbbr остановлены, каталог копий подготовлен.

Шаг 16. Сохраните ключи и конфигурацию #

Архив data и Compose содержит идентичность сервера. При восстановлении новый случайный ключ потребовал бы перенастроить все клиенты.

Сохраните ключи и конфигурацию
sudo tar -czpf /var/backups/rustdesk/state-$(date +%F-%H%M).tar.gz data compose.yaml
sudo chmod 600 /var/backups/rustdesk/*.tar.gz

Архив создан и закрыт правами 600; перенесите его на другую машину.

Шаг 17. Возобновите доступ и проверьте копию #

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

Возобновите доступ и проверьте копию
docker compose start hbbs hbbr

Оба клиента соединяются; сохранён способ восстановления ключей.

Если результат шага отличается #

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

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

Обсудить установку и настройку

Материал был полезен?

Сообщить об ошибке или задать вопрос редакции

Сообщение увидит редакция. Не указывайте пароли и личные данные. Текст удаляется через 180 дней.

О материале

ИнфраструктураРуководствоЗадача: установитьУровень: практикаRustDesk Server OSS

Последнее обновление:

Обсуждение

Комментарии проходят подтверждение адреса и проверку редакцией.