Пошаговая инструкция · Самостоятельная установка
Как установить 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-сайт и веб-клиент не настраиваем.
getent ahostsv4 rd.example.comDNS возвращает IP сервера.
Шаг 2. Разрешите SSH перед firewall #
Сохраняем доступ OpenSSH, затем задаём запрет остальных входящих соединений. Если SSH-порт изменён, разрешите его явно вместо стандартного профиля.
sudo ufw allow OpenSSH
sudo ufw default deny incomingВаш SSH-порт разрешён.
Шаг 3. Откройте порты RustDesk #
21115/21116 помогают клиентам находить друг друга, 21117 нужен relay при невозможности прямого соединения. Те же правила нужны у провайдера.
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 для передачи соединения. Оба используют один каталог ключей.
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 --quietconfig --quiet завершился без ошибки.
Шаг 7. Скачайте образы #
Загружаем официальный RustDesk Server OSS выбранной версии. Пока не меняем клиентские настройки.
docker compose pullpull завершился успешно.
Шаг 8. Запустите службу ID #
Сначала запускаем hbbs, который создаст ключи. Дождитесь его запуска и посмотрите журнал.
docker compose up -d hbbs
docker compose logs --tail=50 hbbshbbs работает без постоянных перезапусков.
Шаг 9. Проверьте появление публичного ключа #
Проверка test подтверждает, что сервер создал непустой публичный ключ. Не генерируйте второй комплект в другом каталоге для relay.
# Продолжайте после появления файла, не создавайте его вручную:
sudo test -s data/id_ed25519.pubКоманда завершилась без ошибки; data/id_ed25519.pub существует.
Шаг 10. Запустите relay #
hbbr использует тот же data, поэтому идентичность сервера для обеих служб согласована. Посмотрим состояние и журнал.
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-порт.
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 hbbrhbbs/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Оба клиента соединяются; сохранён способ восстановления ключей.
Если результат шага отличается #
Вернитесь к проверке того шага, на котором появилась ошибка. Первая ошибка в выводе обычно полезнее последних строк: последующие команды могли не получить нужный файл или работающую службу. Не повторяйте установку целиком поверх частично настроенного приложения.
Если страница не открывается, сначала проверьте домен и входящие порты, затем состояние приложения и его журнал. Если сайт открывается, но отдельное действие не работает, проверьте связанные компоненты — обработчик фоновых задач, почту или права пользователя. Официальные источники в конце статьи относятся к выбранному способу установки.