2 min read

Свой сервер RustDesk в Docker Compose: альтернатива TeamViewer без посредников

Свой сервер RustDesk в Docker Compose: альтернатива TeamViewer без посредников

Ищешь приватную, безопасную и open-source альтернативу TeamViewer? RustDesk — отличный выбор, а развернув его сам в Docker Compose, получаешь полный контроль над решением для удалённого доступа.

В этом гайде поднимаем сервер RustDesk с нуля, настраиваем безопасный доступ и подключаем клиентов.

Зачем хостить RustDesk самому

Свой сервер RustDesk даёт:

  • Полную приватность — без сторонних релеев.
  • Лучшую производительность — прямое соединение с твоей сетью.
  • Контроль безопасности — пароли, ключи, список разрешённых клиентов сам решаешь.
  • Экономию — никаких подписок.

Что понадобится

  • Установленные Docker и Docker Compose.
  • Публичный IP или домен.
  • Открытые порты 21115-21119 (TCP/UDP) в фаерволе.

Шаг 1 — установка Docker и Docker Compose

sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker

Шаг 2 — рабочая директория

mkdir -p /opt/rustdesk-server && cd /opt/rustdesk-server

Шаг 3 — docker-compose.yml

sudo vim docker-compose.yml
version: '3'

services:
  hbbs:
    image: ${RUSTDESK_IMAGE}
    container_name: rustdesk-hbbs
    restart: unless-stopped
    network_mode: "host"
    environment:
      - TZ=${TZ}
      - RUSTDESK_RELAY_PASSWORD=${RUSTDESK_RELAY_PASSWORD}
      - RUSTDESK_ALLOWED_IDS=${RUSTDESK_ALLOWED_IDS}
      - ALWAYS_USE_RELAY=Y
      - RUSTDESK_SSH_KEY=/root/.ssh/authorized_keys
    volumes:
      - rustdesk-data:/data
      - ./data:/root
    depends_on:
      - hbbr
    command: ["hbbs", "-r", "127.0.0.1:21117"]

  hbbr:
    image: ${RUSTDESK_IMAGE}
    container_name: rustdesk-hbbr
    restart: unless-stopped
    network_mode: "host"
    environment:
      - TZ=${TZ}
    volumes:
      - rustdesk-data:/data
      - ./data:/root
    command: ["hbbr"]

volumes:
  rustdesk-data:

hbbs — сигнальный сервер (ID server), hbbr — релей-сервер для пересылки трафика, когда прямое соединение невозможно.

Шаг 4 — переменные окружения

Создай .env:

touch .env && vim .env
RUSTDESK_IMAGE=rustdesk/rustdesk-server

RUSTDESK_PORT1=21115
RUSTDESK_PORT2=21116
RUSTDESK_PORT3=21117
RUSTDESK_PORT4=21118
RUSTDESK_PORT5=21119
RUSTDESK_UDP_PORT=21116

RUSTDESK_RELAY_PASSWORD="your-strong-password"
RUSTDESK_ALLOWED_IDS=
RUSTDESK_SSH_KEY=/root/.ssh/authorized_keys

TZ=Europe/Kiev
Совет: для RUSTDESK_RELAY_PASSWORD ставь длинный уникальный пароль — иначе сервер открыт кому угодно.

Шаг 5 — запуск сервера

docker-compose up -d

Проверь, что контейнеры запущены:

docker ps

Шаг 6 — подключение клиента RustDesk

  1. Скачай RustDesk с официального сайта.
  2. Открой Settings → Server.
  3. В ID Server укажи IP или домен своего сервера.
  4. Введи RUSTDESK_RELAY_PASSWORD из .env.
  5. При использовании SSH-аутентификации добавь публичный ключ в ~/.ssh/authorized_keys на сервере.

Шаг 7 — управление сервером

Остановить:

docker-compose down

Перезапустить:

docker-compose restart

Посмотреть логи:

docker-compose logs -f

Опционально — HTTPS

Для шифрованных соединений поставь reverse proxy (Nginx или Traefik) перед сервером RustDesk.


Подняв RustDesk в Docker Compose, получаешь быструю, приватную систему удалённого доступа без зависимости от внешних сервисов и без абонентской платы. Дальше — только настроить под себя политику паролей и доступов.


Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.

Связаться с нами
Telegram
WhatsApp
Email