Файл docker-compose для запуска сервера rustdesk
Опубликовано:
Мы рассмотрим небольшой пример оркестрации docker для запуска сервера rustdesk. Команды будем выполнять на системе Linux.
Пример docker-compose
Создаем рабочий каталог для хранения файлов и переходим в него:
mkdir -p /opt/rustdesk && cd /opt/rustdesk
Создаем файл docker-compose:
vi docker-compose.yml
services:
hbbs:
image: rustdesk/rustdesk-server:${RUS_VER}
container_name: rustdesk-hbbs
hostname: rustdesk-hbbs
command: hbbs -r ${EXTERNAL_IP}:21117 -k _
volumes:
- ./data:/root
network_mode: host
restart: unless-stopped
hbbr:
image: rustdesk/rustdesk-server:${RUS_VER}
container_name: rustdesk-hbbr
hostname: rustdesk-hbbr
command: hbbr -k _
volumes:
- ./data:/root
network_mode: host
restart: unless-stopped
* сервис представлен двумя контейнерами:
- hbbs — сервер идентификации (сигнальный сервер). При подключении к удаленному ПК, вы спрашиваете у hbbs, где находится этот ПК.
- hbbr — релейный сервер (сервер трансляции данных). Используется, когда два компьютера не могут связаться напрямую (например, оба за NAT или сетевыми экранами).
Настройка и запуск
Создаем конфигурационный файл:
vi .env
RUS_VER=1.1.15
EXTERNAL_IP=1.2.3.4
* где:
- RUS_VER — версия rustdesk сервера. Актуальный номер тега можно посмотреть на Docker Hub.
- EXTERNAL_IP — внешний IP-адрес, на котором слушает сервер rustdesk. Даже, если он находится на NAT, необходимо указать конечный внешний IP.
Так как в наших контейнерах используется настройка network_mode: host, необходимо открыть следующие порты:
- TCP: 21115, 21116, 21117, 21118, 21119
- UDP: 21116
В зависимости от утилиты управления брандмауэром, это делается разными командами.
а) iptables (как правило, на DEB Linux):
iptables -I INPUT -p tcp --match multiport --dports 21115:21119 -j ACCEPT
iptables -I INPUT -p udp --dport 21116 -j ACCEPT
Для сохранения правил можно использовать
apt install iptables-persistent
netfilter-persistent save
б) firewalld (как правило, на RPM Linux):
firewall-cmd --permanent --add-port={21115,21116,21117,21118,21119}/tcp --add-port=21116/udp
firewall-cmd --reload
Можно запускать наши контейнеры:
docker-compose up -d
Состояние запущенных контейнеров можно посмотреть командой:
docker-compose ps
Подключение клиентом
При первом запуске сервер hbbs автоматически генерирует пару зашифрованных ключей в рабочей директории. Чтобы увидеть секретный ключ, выполните в терминале команду:
cat /opt/rustdesk/data/id_ed25519.pub
Зафиксируйте полученный ключ. Он понадобится для подключения к серверу.
Для настройки клиента выполните следующие шаги:
1. Нажмите на три точки рядом со своим ID в программе и выберите Сеть (Network) или ID/Сервер ретрансляции (ID/Relay Server).
2. Заполните поля:
- ID-сервер (ID Server): укажите ваш EXTERNAL_IP.
- Сервер ретрансляции (Relay Server): продублируйте этот же EXTERNAL_IP (сервер hbbr работает на том же адресе).
- Ключ (Key): вставьте скопированную строку из файла id_ed25519.pub.
3. Нажмите Применить (Apply).
Если порты на сервере открыты правильно, внизу окна RustDesk загорится статус "Готов" (Ready). Эту настройку нужно повторить на всех устройствах, между которыми вы планируете устанавливать связь.