Воронин

WEB RustDesk на Synology

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

Есть «костыль», который решит вашу проблему, давайте настроим web сервер для RustDesk, который будет находится в той же сети, что и ретранслятор, и поможет не имея приложения-клиента подключаться к любой машине в LAN.

Воспользуемся Docker на Synology.

Для начала найдём в реестре контейнер rustdesk-web-client

и скачаем его

после скачивания выбираем «Запустить»

пробросим 5000 порт на 35000, чтобы не конфликтовал с  synology

остальное оставляем по-умолчанию

теперь просто в браузере открываем на наш synology порт 35000

готово

RustDesk на Synology

запустим свой сервер ретрансляции для RustDesk на Synology

за основу взял статью на официальном сайте: https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/docker/

нам потребуется создать на компьютере файл docker-compose.yml

version: '3'

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    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

на Synology создайте папку RustDesk в структуре /volume1/docker

далее в папке RustDesk создайте папку data

и дайте на неё полные права для записи

теперь откройте Container Manager и нажмите кнопку создать

заполните соответствующие поля и укажите путь к файлу docker-compose.yml на компьютере

настройки веб-портала я пропустил

создаём и запускаем

ждём когда скачаются соответствующие образы и сформируются контейнеры

всё готово и наш проект запустился

внутри него два зависимых контейнера

можно смотреть их свойства, например, журнал сервера

а в папке /volume1/docker/RustDesk появился файл compose.yaml

в папке data структура файлов и нужный нам для подключения публичный ключ

готово

PS не забудьте дать доступ к портам вашего synology

  • TCP (21115, 21116, 21117, 21118, 21119)
  • UDP (21116)

Ставим Rustdesk на synology

Воспользуемся пакетом «Container manager»

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

внутри папки общего доступа создадим подпапки, в них будут храниться настройки сервиса

Затем в «Container manager» найдите и загрузите образ rustdesk/rustdesk-server

ну, а теперь самое простое, ниже выкладываю листинги настроенных конфигураций контейнеров

сохраните этот в файл с именем hbbr.json

{
   "CapAdd" : null,
   "CapDrop" : null,
   "cmd" : "hbbr",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : false,
   "enable_service_portal" : null,
   "enabled" : true,
   "env_variables" : [
      {
         "key" : "PATH",
         "value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      }
   ],
   "exporting" : false,
   "id" : "79ece58ece789b007f88a1940cc2a93737b47eca9de138e4a99d46efa4fa274e",
   "image" : "rustdesk/rustdesk-server:latest",
   "is_ddsm" : false,
   "is_package" : false,
   "labels" : {
      "org.opencontainers.image.created" : "2022-09-02T10:46:15.873Z",
      "org.opencontainers.image.description" : "RustDesk Server Program",
      "org.opencontainers.image.licenses" : "AGPL-3.0",
      "org.opencontainers.image.revision" : "4bdc205fca189e2d3e8207d2a68c0dd9c166429d",
      "org.opencontainers.image.source" : "https://github.com/rustdesk/rustdesk-server",
      "org.opencontainers.image.title" : "rustdesk-server",
      "org.opencontainers.image.url" : "https://github.com/rustdesk/rustdesk-server",
      "org.opencontainers.image.version" : "1.1.6-1"
   },
   "links" : [],
   "memory_limit" : 0,
   "name" : "hbbr",
   "network" : [
      {
         "driver" : "host",
         "name" : "host"
      }
   ],
   "network_mode" : "host",
   "port_bindings" : [],
   "privileged" : false,
   "services" : null,
   "shortcut" : {
      "enable_shortcut" : false,
      "enable_status_page" : false,
      "enable_web_page" : false,
      "web_page_url" : ""
   },
   "use_host_network" : true,
   "version" : 2,
   "volume_bindings" : [
      {
         "host_volume_file" : "/RustDesk/hbbr",
         "is_directory" : true,
         "mount_point" : "/root",
         "type" : "rw"
      }
   ]
}

и второй файл сохраните с именем hbbs.json и обязательно отредактируйте, заменив SYNOLOGY_IP на ip вашего сервера

{
   "CapAdd" : null,
   "CapDrop" : null,
   "cmd" : "hbbs -r SYNOLOGY_IP",
   "cpu_priority" : 50,
   "enable_publish_all_ports" : false,
   "enable_restart_policy" : false,
   "enable_service_portal" : null,
   "enabled" : true,
   "env_variables" : [
      {
         "key" : "PATH",
         "value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      }
   ],
   "exporting" : false,
   "id" : "5072e615b973f22d24e46b3517cd999ee1a04d317d3dad8c6cc47fb074e16953",
   "image" : "rustdesk/rustdesk-server:latest",
   "is_ddsm" : false,
   "is_package" : false,
   "labels" : {
      "org.opencontainers.image.created" : "2022-09-02T10:46:15.873Z",
      "org.opencontainers.image.description" : "RustDesk Server Program",
      "org.opencontainers.image.licenses" : "AGPL-3.0",
      "org.opencontainers.image.revision" : "4bdc205fca189e2d3e8207d2a68c0dd9c166429d",
      "org.opencontainers.image.source" : "https://github.com/rustdesk/rustdesk-server",
      "org.opencontainers.image.title" : "rustdesk-server",
      "org.opencontainers.image.url" : "https://github.com/rustdesk/rustdesk-server",
      "org.opencontainers.image.version" : "1.1.6-1"
   },
   "links" : [],
   "memory_limit" : 0,
   "name" : "hbbs",
   "network" : [
      {
         "driver" : "host",
         "name" : "host"
      }
   ],
   "network_mode" : "host",
   "port_bindings" : [],
   "privileged" : false,
   "services" : null,
   "shortcut" : {
      "enable_shortcut" : false,
      "enable_status_page" : false,
      "enable_web_page" : false,
      "web_page_url" : ""
   },
   "use_host_network" : true,
   "version" : 2,
   "volume_bindings" : [
      {
         "host_volume_file" : "/RustDesk/hbbs",
         "is_directory" : true,
         "mount_point" : "/root",
         "type" : "rw"
      }
   ]
}

далее идём в «Container manager» -> Контейнер -> Импорт -> С локального устройства

и выбираем по очереди наши json файлы

после того, как мы их импортировали — можно запускать «Действие» -> «Пуск»

теперь идём в Журнал контейнера hbbs и ищем запись, куда сохранён публичный ключ

файл лежит в папке, которую мы делали выше

готово! все молодцы.

Ранее Ctrl + ↓