Установка и настройка сервера RustDesk на VPS: создание защищённой альтернативы TeamViewer
TL;DR
В данном руководстве мы рассматриваем процесс развёртывания собственного сервера RustDesk (ID и Relay серверы) на виртуальном сервере под управлением Linux. Это позволяет полностью отказаться от сторонних проприетарных решений, таких как TeamViewer или AnyDesk, обеспечивая максимальную приватность, отсутствие ограничений по времени сессий и минимальную задержку (latency) за счёт размещения сервера в оптимальной локации. Мы настроим серверную часть через Docker Compose, защитим соединение с помощью шифрования NaCl и настроим брандмауэр для безопасной работы в 2026 году.
- Полный контроль: Ваши данные и ID-адреса не проходят через централизованные серверы разработчиков.
- Производительность: Использование собственного Relay-сервера исключает лаги, характерные для бесплатных публичных серверов.
- Безопасность: Принудительное шифрование и работа через закрытый ключ исключают несанкционированный доступ.
- Экономия: Self-hosted решение на базе VPS обходится в разы дешевле корпоративных лицензий коммерческого ПО.
- Гибкость: Возможность кастомизации под нужды команды или личного использования.
1. Что мы настраиваем и зачем: преимущества RustDesk
Схема: 1. Что мы настраиваем и зачем: преимущества RustDesk
В условиях современной цифровой среды инструменты удалённого доступа стали критически важными как для бизнеса, так и для частных пользователей. Однако популярные решения вроде TeamViewer, AnyDesk или Microsoft Remote Desktop (RDP) имеют ряд существенных недостатков: от высокой стоимости лицензий до внезапных блокировок сессий и потенциальных рисков безопасности, связанных с хранением данных на чужих серверах. RustDesk — это open-source альтернатива, которая позволяет развернуть собственную инфраструктуру удалённого рабочего стола.
Основная задача, которую мы решаем в этом гайде — это установка серверных компонентов hbbs (ID-сервер для регистрации клиентов) и hbbr (Relay-сервер для передачи трафика, если прямое P2P соединение невозможно). Когда вы используете публичные серверы RustDesk, вы делите ресурсы с тысячами других пользователей, что приводит к задержкам. Собственный сервер на VPS гарантирует, что вся полоса пропускания принадлежит только вам.
Почему стоит выбрать self-hosted решение на VPS:
- Приватность: Список ваших устройств и история подключений хранятся только на вашем сервере.
- Отсутствие NAT-проблем: VPS с белым IP-адресом выступает в роли посредника, позволяя подключаться к компьютерам за сложными роутерами и корпоративными файрволами.
- Скорость: Выбирая сервер в ближайшем дата-центре, вы минимизируете задержку ввода, что критично для комфортной работы.
2. Какой VPS-конфиг нужен под эту задачу
Схема: 2. Какой VPS-конфиг нужен под эту задачу
RustDesk — чрезвычайно легковесное программное обеспечение. Основная нагрузка ложится на сеть, а не на процессор или диск. Тем не менее, для стабильной работы под управлением современных дистрибутивов Linux (например, Ubuntu 24.04 или 26.04 LTS) требуются определённые ресурсы.
| Характеристика |
Минимальные требования |
Рекомендуемые (для команд) |
| Процессор (CPU) |
1 ядро (Shared) |
2 ядра (Dedicated threads) |
| Оперативная память (RAM) |
1 ГБ |
2-4 ГБ |
| Дисковое пространство |
10 ГБ SSD/NVMe |
40 ГБ SSD (для логов и записей сессий) |
| Сеть |
100 Мбит/с, безлимитный трафик |
1 Гбит/с, приоритетный канал |
| IP-адрес |
1 x IPv4 (обязательно) |
IPv4 + IPv6 |
Для большинства задач — от поддержки родственников до администрирования небольшого парка серверов — достаточно начального уровня ресурсов. Вы можете арендовать подходящий VPS, который покроет все потребности RustDesk и позволит параллельно запустить дополнительные утилиты мониторинга.
Когда стоит задуматься о Dedicated сервере? Если вы планируете использовать RustDesk для трансляции высококачественного видео, работы с тяжелой графикой через удалённый стол в режиме 24/7 или если количество одновременных сессий превышает 50-100. В остальных случаях виртуализация (KVM) справляется идеально.
Локация сервера: Это важнейший параметр. Если вы находитесь в Москве, а подключаетесь к компьютеру в Берлине, сервер лучше располагать в одной из этих точек или посередине (например, в Варшаве). Чем ниже пинг между клиентом, сервером и хостом, тем меньше будет "отзывчивость" курсора мыши.
3. Подготовка сервера: базовые настройки безопасности
Схема: 3. Подготовка сервера: базовые настройки безопасности
Перед установкой RustDesk необходимо подготовить операционную систему. Мы будем использовать Ubuntu как наиболее стандартный и документированный дистрибутив.
Первым делом обновим пакеты до актуального состояния:
sudo apt update && sudo apt upgrade -y
Создадим отдельного пользователя с правами sudo, чтобы не работать под root. Это стандарт безопасности 2026 года:
# Создаем пользователя
sudo adduser rustadmin
# Добавляем в группу sudo
sudo usermod -aG sudo rustadmin
# Переключаемся на пользователя
su - rustadmin
Настройка брандмауэра (UFW) — критический этап. RustDesk использует несколько портов для разных задач. Нам нужно открыть их:
- 21115 (TCP): NAT-тестирование.
- 21116 (TCP/UDP): Основной ID-сервер (TCP — для запросов, UDP — для heartbeat/ID регистрации).
- 21117 (TCP): Relay-сервер (передача данных).
- 21118/21119 (TCP): Веб-клиент и поддержка WebSocket (если планируете использовать браузерную версию).
sudo ufw allow 22/tcp
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
sudo ufw enable
Для защиты от брутфорса SSH рекомендуем установить Fail2Ban:
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
4. Установка Docker и необходимых зависимостей
Схема: 4. Установка Docker и необходимых зависимостей
Использование Docker — наиболее надежный способ развертывания RustDesk. Это изолирует приложение от системы и упрощает процесс обновления. В 2026 году Docker Compose является стандартом де-факто для оркестрации небольших self-hosted сервисов.
Установим Docker через официальный репозиторий:
# Установка зависимостей
sudo apt install ca-certificates curl gnupg lsb-release -y
# Добавление ключа GPG
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Настройка репозитория
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установка Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
Проверим корректность установки:
docker --version && docker compose version
5. Пошаговая установка сервера RustDesk (hbbs и hbbr)
Схема: 5. Пошаговая установка сервера RustDesk (hbbs и hbbr)
Мы создадим директорию для проекта и опишем конфигурацию в файле docker-compose.yml. Это позволит запускать оба необходимых компонента одной командой.
mkdir ~/rustdesk-server && cd ~/rustdesk-server
nano docker-compose.yml
Вставьте следующее содержимое в файл. Замените rustdesk.example.com на IP вашего VPS или ваш домен:
version: '3'
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs -r rustdesk.example.com:21117 -k _
volumes:
- ./data:/root
network_mode: host
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: host
restart: unless-stopped
Разбор параметров:
hbbs -r <host>:21117: Указывает ID-серверу адрес Relay-сервера. Это критично для корректной маршрутизации трафика.
-k _: Этот флаг заставляет сервер требовать обязательное использование публичного ключа при подключении клиентов. Это защищает ваш сервер от несанкционированного использования посторонними лицами.
network_mode: host: Используется для максимальной производительности и избежания проблем с пробросом UDP-портов внутри Docker-сети.
Запустим контейнеры:
docker compose up -d
6. Настройка шифрования и авторизации по ключу
Схема: 6. Настройка шифрования и авторизации по ключу
После первого запуска в директории ./data появятся ключи шифрования. Нам нужен файл с расширением .pub. Именно этот ключ мы будем вводить в настройках клиента.
cat ./data/id_ed25519.pub
Скопируйте вывод этой команды. Без этого ключа никто не сможет подключиться через ваш сервер, даже если знает его IP-адрес. Это реализует архитектуру Zero-Trust, где сервер является лишь посредником, не имеющим доступа к содержимому сессии.
Почему это важно? В публичных версиях RustDesk шифрование может быть опциональным. В нашей конфигурации мы сделали его обязательным. Весь трафик между оператором и удаленным хостом шифруется с помощью библиотеки NaCl (libsodium), что делает перехват данных бессмысленным.
7. Тонкая настройка клиента и оптимизация сети
Схема: 7. Тонкая настройка клиента и оптимизация сети
Теперь, когда сервер запущен, необходимо настроить клиентское приложение на устройствах (Windows, macOS, Linux, Android или iOS).
- Откройте RustDesk на вашем компьютере.
- Перейдите в Настройки (Settings) -> Сеть (Network).
- Нажмите "Разблокировать настройки сети" (Unlock network settings).
- В поле ID-сервер (ID Server) введите IP-адрес или домен вашего VPS.
- В поле Relay-сервер (Relay Server) введите тот же адрес (порт 21117 подставится автоматически, если не указано иное).
- В поле Key вставьте содержимое файла
id_ed25519.pub, которое мы получили на предыдущем шаге.
- Нажмите "Применить" (Apply).
Если всё настроено верно, в нижней части окна RustDesk появится статус "Ready" с зеленым индикатором. Теперь вы можете передать этот же ID и пароль (или настроить постоянный пароль) для доступа к удаленному устройству.
Оптимизация для медленных соединений: Если вы работаете через мобильный интернет, в настройках сессии выберите кодек VP9 или AV1 (если поддерживается оборудованием) и установите режим "Optimize reaction time". Это снизит битрейт, сохранив отзывчивость интерфейса.
8. Бэкапы, мониторинг и обслуживание системы
Схема: 8. Бэкапы, мониторинг и обслуживание системы
Сервер RustDesk практически не требует обслуживания, но для обеспечения надежности 99.9% стоит внедрить базовые практики эксплуатации.
Бэкап данных
Самое важное — сохранить ключи и базу данных ID. Если вы потеряете файл id_ed25519 (приватный ключ), вам придется перенастраивать все клиенты заново, так как публичный ключ изменится.
# Простой скрипт бэкапа в архив
tar -czvf rustdesk_backup_$(date +%F).tar.gz ~/rustdesk-server/data
Рекомендуется настроить cron задачу для еженедельного копирования этого архива на внешнее хранилище (например, S3 или другой VPS).
Обновление сервера
Чтобы обновить RustDesk до последней версии, достаточно выполнить:
cd ~/rustdesk-server
docker compose pull
docker compose up -d
Мониторинг
Для отслеживания состояния сервера можно использовать простую проверку портов. Если порт 21116 (UDP) не отвечает, значит, ID-сервер упал и клиенты не смогут найти друг друга.
9. Troubleshooting + FAQ: решение типичных проблем
Почему статус клиента "Not Ready"?
Чаще всего это связано с закрытыми портами на стороне VPS. Убедитесь, что ваш провайдер не блокирует входящий трафик на уровне внешней панели управления (Security Groups). Проверьте статус UFW: sudo ufw status. Также убедитесь, что в настройках клиента в поле Key нет лишних пробелов или символов переноса строки.
Какая задержка считается нормальной?
При работе внутри одного региона (например, Европа-Европа) задержка должна составлять 20-50 мс. Если пинг выше 150 мс, работа будет некомфортной. В этом случае проверьте загрузку CPU на VPS и убедитесь, что вы не используете публичный Relay-сервер по ошибке.
Можно ли использовать домен вместо IP?
Да, это рекомендуется. Если IP вашего VPS изменится, вам не придется перенастраивать все клиенты. Просто обновите A-запись в DNS вашего домена.
Как ограничить список лиц, имеющих доступ к серверу?
RustDesk Server Pro (платная версия) поддерживает детальные ACL. В бесплатной версии, которую мы установили, защита строится на знании Key. Не передавайте публичный ключ третьим лицам. Дополнительно можно ограничить доступ на уровне UFW, разрешив подключения только с определенных IP-адресов, если они у вас статические.
Какой VPS-конфиг минимально подойдёт?
Минимально достаточно 1 ядра CPU и 1 ГБ оперативной памяти. RustDesk написан на Rust, что обеспечивает высокую эффективность использования памяти. Основной ресурс — это пропускная способность сети. Для комфортной работы 2-3 одновременных пользователей хватит даже самого бюджетного тарифа.
Что выбрать — VPS или dedicated для этой задачи?
Для 95% сценариев (личная поддержка, администрирование до 200 ПК) VPS — идеальный выбор. Dedicated сервер стоит рассматривать только если вы строите глобальный сервис удаленной поддержки с тысячами одновременных сессий, где требуется гарантированная полоса пропускания в 1-10 Гбит/с без влияния "соседей" по гипервизору.
10. Выводы и следующие шаги
Мы успешно развернули собственный сервер RustDesk, обеспечив себе независимость от зарубежных облачных сервисов и корпоративных ограничений. Теперь у вас есть защищенный канал связи, который полностью контролируется вами — от ключей шифрования до логов подключений.
В качестве следующих шагов по оптимизации инфраструктуры рекомендуем:
- Настроить собственный Address Book (адресную книгу), если у вас много устройств.
- Развернуть веб-клиент для доступа к рабочим столам прямо из браузера без установки ПО.
- Интегрировать мониторинг (например, Prometheus + Grafana) для отслеживания сетевого трафика и нагрузки на Relay-сервер.
Помните, что безопасность self-hosted решений — это постоянный процесс. Регулярно обновляйте Docker-образы и следите за обновлениями безопасности вашей операционной системы на VPS.