Запуск собственного сервера ретрансляции RustDesk начинается с двух исполняемых файлов — hbbs (сервер идентификаторов) и hbbr (сервер ретрансляции), которые нужно развернуть на машине с публичным IP-адресом. Без них клиенты RustDesk подключаются через публичные серверы проекта, что означает зависимость от их загрузки и передачу трафика через стороннюю инфраструктуру.
Собственный сервер решает три задачи: повышает скорость соединения за счёт близости к вашим устройствам, даёт полный контроль над трафиком удалённых сессий и позволяет ограничить доступ только своими ключами шифрования. Ниже разберём установку, настройку портов, подключение клиентов и типичные ошибки, из-за которых связка hbbs/hbbr не работает.
Что такое hbbs и hbbr и зачем нужны оба компонента
Архитектура самостоятельного сервера RustDesk состоит из двух процессов. hbbs отвечает за регистрацию устройств, выдачу ID и организацию прямого соединения (hole punching). hbbr включается в работу только тогда, когда прямое P2P-соединение установить не удалось — он ретранслирует трафик между клиентами через себя.
На практике значительная часть соединений устанавливается напрямую, и ретранслятор остаётся «запасным путём». Однако запускать hbbr всё равно необходимо: за строгими NAT и корпоративными файрволами прямое соединение часто невозможно, и без ретранслятора клиенты просто не увидят друг друга.
Оба процесса могут работать на одном сервере. Требования к железу скромные — подойдёт минимальный VPS с одним ядром и небольшим объёмом оперативной памяти, если число одновременных ретранслируемых сессий невелико.
Требования к серверу и открытие портов
Перед установкой убедитесь, что у сервера есть публичный статический IP-адрес (или доменное имя, указывающее на него). Сервер за NAT без проброса портов не сможет принимать подключения клиентов извне.
RustDesk использует фиксированный набор портов. Их необходимо открыть в файрволе сервера и, при наличии, в панели облачного провайдера:
- 🔌
21115–21119 TCP— основные порты hbbs (регистрация, NAT type test, веб-консоль и API); - 📡
21116 UDP— обязательный порт для регистрации ID и пробития NAT; - 🔁
21117 TCP— порт ретрансляции hbbr; - 🌐
21118–21119 TCP— используются веб-клиентом RustDesk, если он вам нужен.
Пример открытия портов через ufw на Ubuntu:
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
sudo ufw reload
⚠️ Внимание: чаще всего самостоятельный сервер «не работает» именно из-за закрытого UDP 21116. Клиенты при этом пишут «не готов» или «не удаётся подключиться к серверу ретрансляции». Проверяйте UDP отдельно — многие открывают только TCP.
Установка сервера через Docker
Наиболее простой и воспроизводимый способ — официальные Docker-образы. Понадобятся установленные Docker и docker compose. Создайте файл docker-compose.yml примерно следующего содержания:
version: '3'
services:
hbbs:
image: rustdesk/rustdesk-server:latest
command: hbbs -r ваш_домен_или_IP:21117
network_mode: host
volumes:
- ./data:/root
restart: unless-stopped
hbbr:
image: rustdesk/rustdesk-server:latest
command: hbbr
network_mode: host
volumes:
- ./data:/root
restart: unless-stopped
Параметр -r у hbbs указывает адрес ретранслятора, который сервер будет сообщать клиентам. Если hbbr работает на той же машине, достаточно указать её внешний адрес. Ключ network_mode: host упрощает работу с портами — контейнер использует сеть хоста напрямую.
Запуск выполняется одной командой:
docker compose up -d
☑️ Проверка после запуска контейнеров
Установка без Docker (нативный запуск)
Если Docker нежелателен, бинарные файлы сервера доступны на странице релизов проекта RustDesk на GitHub. Скачайте архив под свою ОС, распакуйте и запустите оба процесса. Для автозапуска на Linux удобно оформить их как службы systemd:
./hbbs -r ваш_домен_или_IP
./hbbr
Для Windows-сервера существуют сборки hbbs/hbbr, а также возможность запуска через NSSM в качестве службы. Учтите, что на Windows точные имена параметров и поведение могут отличаться в зависимости от версии — сверяйтесь с документацией конкретного релиза.
Ключ шифрования и принудительная авторизация
При первом запуске hbbs генерирует пару ключей в рабочей директории: приватный id_ed25519 и публичный id_ed25519.pub. Содержимое публичного ключа нужно указать в настройках клиентов — тогда трафик будет шифроваться с проверкой вашего сервера.
Чтобы запретить использование сервера чужими клиентами, запустите hbbs с параметром -k _ (или укажите конкретный ключ). В этом режиме сервер принимает только подключения, где указан правильный ключ. Это главная мера защиты самостоятельного сервера от посторонних — без ключа ваш ретранслятор сможет использовать любой желающий.
⚠️ Внимание: файл id_ed25519 (приватный ключ) никому не передавайте и не удаляйте. При его потере придётся перегенерировать ключи и заново прописывать новый публичный ключ на всех клиентах.
Настройка клиентов RustDesk
После запуска сервера каждый клиент нужно переключить с публичной инфраструктуры на вашу. Откройте в RustDesk: Настройки → Сеть → Разблокировать настройки сети → ID-сервер/Ретранслятор. Заполните поля:
- 🖥️ ID-сервер — адрес или домен вашего сервера (порт указывать не обязательно, используются стандартные);
- 🔁 Сервер ретрансляции — можно оставить пустым, если вы задали параметр
-rу hbbs; - 🔑 Ключ — содержимое файла
id_ed25519.pubцеликом, одной строкой; - 🌍 API-сервер — нужен только для Pro-версии, для open-source оставьте пустым.
После применения настроек в нижней части окна клиента должна появиться надпись «Готов» — это означает успешную регистрацию на вашем hbbs. Если статус «Не готов», проверяйте доступность портов и корректность ключа.
Массовое развёртывание настроек
В Pro-версии есть генератор клиентов с предустановленным сервером. В open-source версии конфигурацию можно переносить через файл настроек RustDesk (RustDesk2.toml в служебной папке программы) — скопируйте его на другие машины после настройки эталонного клиента. Путь к файлу зависит от ОС, уточните его для вашей версии.
Проверка работы и типичные ошибки
Диагностику удобно начинать со стороны сервера. Команда docker compose logs -f покажет регистрации клиентов в реальном времени. Если при подключении клиента в логах hbbs ничего не происходит — трафик до сервера не доходит, и проблема в сети или файрволе.
Со стороны клиента доступность портов проверяется так:
nc -zv ваш_сервер 21116
nc -zvu ваш_сервер 21116
| Симптом | Вероятная причина | Что проверить |
|---|---|---|
| Статус «Не готов» | Недоступен hbbs | UDP 21116, адрес ID-сервера |
| «Ошибка подключения к ретранслятору» | Закрыт порт hbbr | TCP 21117, параметр -r у hbbs |
| Соединение рвётся или не устанавливается с ключом | Неверный ключ на клиенте | Совпадение ключа с id_ed25519.pub |
| Медленная передача изображения | Трафик идёт через ретранслятор вместо P2P | UDP-доступность обеих сторон, тип NAT |
| Сервером пользуются посторонние | Запуск без параметра -k | Перезапуск hbbs с обязательным ключом |
⚠️ Внимание: если клиенты находятся за симметричным NAT (часто встречается у мобильных операторов и в корпоративных сетях), прямое соединение может быть невозможно в принципе, и весь трафик пойдёт через hbbr. Учитывайте это при оценке пропускной способности канала сервера.
Часто задаваемые вопросы
Можно ли запустить hbbs и hbbr на одном сервере?
Да, это стандартная схема. Оба процесса используют разные порты и не конфликтуют. Главное — указать hbbs адрес ретранслятора через параметр -r, чтобы клиенты знали, куда подключаться при невозможности прямого соединения.
Нужен ли домен или достаточно IP-адреса?
Достаточно статического публичного IP — клиенты принимают адрес в любом виде. Домен удобнее тем, что при смене сервера не придётся перенастраивать всех клиентов, достаточно обновить DNS-запись.
Будет ли шифроваться трафик через мой сервер?
Да, если на клиентах указан публичный ключ сервера. Соединение между клиентами шифруется сквозным образом, и ретранслятор передаёт уже зашифрованный поток. Без указания ключа защита соединения ослабляется, поэтому ключ рекомендуется настраивать всегда.
Сколько клиентов выдержит минимальный VPS?
Точные цифры зависят от числа одновременных ретранслируемых сессий и качества канала. Сами по себе регистрации ID почти не нагружают сервер; основная нагрузка — ретрансляция видеопотока. Для небольшого парка устройств обычно хватает базового тарифа VPS, но при активной работе через ретранслятор следите за лимитами трафика провайдера.
Чем self-hosted сервер отличается от RustDesk Pro?
Pro-версия добавляет веб-консоль управления, адресную книгу, управление пользователями и генератор настроенных клиентов. Открытая версия hbbs/hbbr даёт базовую функционность — регистрацию и ретрансляцию — без централизованного управления. Для личного использования и небольших команд открытой версии обычно достаточно.