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

Ниже — установка в Linux Mint и Ubuntu, первое подключение, свой сервер hbbs/hbbr, ограничения Wayland и диагностика. Номера версий не приводятся: проект обновляется часто.

Что такое RustDesk и зачем свой сервер

RustDesk — клиент удалённого доступа с открытым исходным кодом, написанный на Rust. Он работает на Linux, Windows, macOS и Android, передаёт экран, клавиатуру, мышь, буфер обмена, файлы и звук. Архитектура состоит из трёх частей: клиент, сервер идентификации hbbs и релейный сервер hbbr. Первый помогает двум клиентам найти друг друга, второй передаёт трафик, если прямое соединение установить не удалось.

По умолчанию клиенты используют публичные серверы проекта. Это удобно для быстрого старта, но трафик идёт через чужую инфраструктуру, а скорость зависит от нагрузки. Свой hbbs/hbbr решает обе проблемы: вы знаете, где проходят данные, и можете разместить релей ближе к пользователям. Для домашней сети достаточно одного недорогого VPS или даже мини-ПК.

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

Установка в Linux Mint и Ubuntu

Самый предсказуемый способ — официальный .deb из раздела releases на GitHub. Скачайте файл под свою архитектуру и установите через apt, чтобы подтянулись зависимости:

cd ~/Downloads
sudo apt install ./rustdesk-*.deb
rustdesk --version
systemctl status rustdesk

Служба rustdesk нужна для подключения к экрану входа и работы без активной сессии пользователя. Для постоянного доступа она обязательна.

Альтернатива — Flatpak. Она удобна тем, что не трогает системные библиотеки, но хуже интегрируется с порталами рабочего стола:

flatpak install flathub com.rustdesk.RustDesk
flatpak run com.rustdesk.RustDesk

Отдельно про Wayland. Большинство дистрибутивов по умолчанию предлагает эту сессию, и RustDesk работает через xdg-desktop-portal и PipeWire. Захват экрана обычно функционирует, а эмуляция ввода и часть сочетаний клавиш могут не работать: композитор вправе ограничить инъекцию событий. Проверьте сессию командой echo $XDG_SESSION_TYPE. Для полного контроля войдите в X11 — это осознанный компромисс между безопасностью Wayland и совместимостью.

Первое подключение и постоянный пароль

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

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

Конфигурация клиента хранится в ~/.config/rustdesk/, а системная служба от root использует /root/.config/rustdesk/. Отсюда частая путаница: пароль из пользовательского клиента не действует при подключении к экрану входа. Для обслуживания лучше завести отдельного пользователя.

ls -la ~/.config/rustdesk/
sudo ls -la /root/.config/rustdesk/
ss -tulpn | grep -E '2111[5-9]'

Свой сервер: hbbs и hbbr

Для развёртывания нужен сервер с публичным IP и двумя DNS-именами, например id.example.com и relay.example.com. Проще всего запустить официальные контейнеры:

mkdir -p ~/rustdesk-data
cd ~/rustdesk-data
docker run --name hbbs --net=host -v "$PWD:/root" -d \
  rustdesk/rustdesk-server hbbs -r relay.example.com:21117
docker run --name hbbr --net=host -v "$PWD:/root" -d \
  rustdesk/rustdesk-server hbbr

Режим —net=host выбран не случайно: серверу нужны TCP и UDP на одних портах и корректное определение внешнего адреса. В Docker Compose пробросьте 21115–21119/tcp и 21116/udp явно. После первого запуска появится пара ключей; публичный id_ed25519.pub вставьте в настройки клиента вместе с адресами сервера:

cat ~/rustdesk-data/id_ed25519.pub
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
sudo ufw status numbered

Назначение портов: 21115/tcp — проверка NAT, 21116/tcp и udp — идентификация, 21117/tcp — релей, 21118 и 21119/tcp — веб-сокеты. Без релея соединения чаще падают при сложном NAT. Ключ обязателен: без него клиенты не проверят подлинность сервера.

Безопасность и разумные ограничения

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

  • Используйте собственный сервер и уникальный ключ, не полагайтесь на публичные релеи.
  • Ограничьте порты файрволом, если клиенты сидят за статическим IP.
  • Проверяйте журнал подключений и завершайте незнакомые сеансы.
  • Не давайте постоянный доступ к учётной записи с правами sudo без острой необходимости.
  • Обновляйте сервер сразу после выхода релизов: сетевой демон — привлекательная цель.

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

Диагностика проблем

Если подключение не устанавливается, идите по цепочке. Сначала проверьте службу и журнал, затем доступность портов, затем совпадение ключа и версий. Команды ниже дают большинство ответов:

systemctl status rustdesk --no-pager
journalctl -u rustdesk -n 80 --no-pager
nc -vz id.example.com 21116
nc -vz relay.example.com 21117
curl -s ifconfig.me

Типичные ошибки: сообщение о несуществующем ID означает, что клиент не достучался до hbbs или использует другой сервер; чёрный экран чаще связан с Wayland; не работает буфер обмена — проверьте разрешения; низкая скорость — признак соединения через релей. В последнем случае помогает UDP 21116 и корректный внешний адрес сервера.

Для проверки релея можно временно запустить hbbr в консоли, но не оставляйте отладочный режим включённым. После устранения проблемы вернитесь к штатному запуску через systemd или Docker с политикой перезапуска unless-stopped.

Итог

RustDesk — зрелый инструмент для тех, кто хочет удалённый доступ без привязки к чужому облаку. Он не самый простой: свой сервер требует VPS, DNS и внимания к портам, а Wayland ограничивает управление. Зато вы получаете прозрачную архитектуру и независимость от тарифов. Для дома достаточно клиента и публичного сервера, для компании — собственный hbbs/hbbr с ключом и файрволом. Начните с тестового подключения в локальной сети, затем вынесите сервер наружу.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте