DNO Tool

Приложение для удалённого администрирования компьютеров на Linux (MOS/ALT) и Windows через SSH. Позволяет выполнять команды на десятках машин одновременно, передавать файлы, мониторить состояние устройств и управлять конфигурациями - всё из одного окна.

💻
Выполнение команд
SSH, SFTP, локально - параллельно на всех устройствах
📊
Мониторинг
Проверка доступности, TCP-ping, ICMP-графики
📄
Иерархия устройств
Папки, drag-and-drop, импорт из файлов
🔧
Редактор команд
Создание своей библиотеки, импорт/экспорт
📤
SFTP-передача
Загрузка и скачивание файлов по SFTP
🔒
SSH-ключи
Массовая установка открытых ключей
🔍
IP-сканер
Автоматическое обнаружение устройств в сети
🎥
Запись экрана
FFmpeg/GStreamer: экран и камера
📷
Камеры ЕЦХД
Просмотр и запись IP-камер по RTSP
📥
Системный трей
Сворачивание в трей, иконка статуса выполнения команд
👁
Veyon
Живые миниатюры экранов, просмотр и управление
🌐
Веб-сервер управления
Управление устройствами и командами через браузер
⚙️
Мастер настройки
Пошаговая первоначальная настройка: устройства, ключи, команды, Veyon

О программе

DNO Tool предназначен для системных администраторов, которым нужно управлять парком рабочих станций. Программа работает по протоколу SSH - не требует установки агентов на целевые машины.

Основные возможности:

Установка

ТребованиеМинимум
ОС (администратор)Windows 10+ или Linux
ОС (целевые машины)Любой Linux с SSH-сервером
Сетевой доступSSH (порт 22) до целевых машин

Windows

  1. Скачайте dno-tool-X.X.X-windows.zip с релиза на GitHub
  2. Распакуйте в удобную папку
  3. Запустите dno-tool.exe

Linux (RPM)

  1. Скачайте dno-tool-X.X.X-mos.x86_64.rpm с релиза
  2. Установите: sudo dnf install ./dno-tool-*.rpm
  3. Запустите через меню приложений или dno-tool

Для запуска с правами администратора используйте пункт меню с pkexec - он сохраняет переменные пользовательского окружения.

Для работы программы необходимо, чтобы файл commands.json находился в директории ~/.dno-tool/. При первом запуске или обновлении он скачивается с GitHub автоматически.

Первый запуск

При первом запуске программа автоматически создаст директорию ~/.dno-tool/ со следующими файлами:

ФайлНазначение
settings.jsonНастройки приложения (SSH, сеть)
hosts.jsonСписок устройств
commands.jsonБиблиотека команд
dno-tool.logФайл логов

Если при первом старте у вас нет ни списка устройств, ни списка команд, автоматически запустится мастер первоначальной настройки - он проведёт вас по всем шагам (см. ниже).

Для начала работы нужно:

  1. Добавить хотя бы одно устройство (см. ниже)
  2. Указать IP-адрес/hostname, логин и пароль для SSH-доступа
  3. Отметить устройство галочкой, выбрать команду и нажать Выполнить

Системный трей

DNO Tool может работать в фоновом режиме, сворачиваясь в системный трей. Это удобно при длительных операциях (выполнение команд на десятках машин, запись экрана, мониторинг): окно можно спрятать, а программа продолжит работу.

Поведение

Индикатор занятости

Иконка трея отражает состояние приложения:

ИконкаСостояниеТултип
ЗелёнаяНет активных задачDNO Tool
«Занятая»Выполняется хотя бы одна командаDNO Tool - выполнение заданий

Переключение происходит автоматически: как только запускается команда, иконка становится «занятой», а когда все команды завершены - возвращается в «онлайн».

Добавление устройств

DNO Tool предоставляет несколько способов добавления устройств - от ручного ввода до автоматического сканирования сети.

1. Вручную

  1. Правый клик по дереву устройств или папке - Добавить устройство
  2. Заполните поля: имя, IP-адрес, логин, пароль, порт (по умолчанию 22)
  3. При необходимости укажите MAC-адрес
  4. Нажмите Сохранить

Устройство будет добавлено в выбранную папку или в корень дерева.

2. Диапазон IP-адресов

Правый клик по дереву - Добавить диапазон IP. Позволяет массово создать устройства для целой подсети.

Поддерживаемые форматы:

ФорматПримерРезультат
CIDR192.168.1.0/24254 адреса
Короткий диапазон192.168.1.1-1515 адресов
Полный диапазон192.168.1.1-192.168.1.254254 адреса
Один IP192.168.1.1001 адрес

Диалог позволяет задать префикс имени (по умолчанию host), порт, логин и пароль. Имя каждого устройства формируется как префикс-N - сквозная нумерация с единицы (например, host-1, host-2, …), что исключает дубликаты имён для подсетей больше /24. Максимально 1024 адреса за один раз.

3. Drag-and-drop текстового файла (.txt)

Перетащите .txt файл из проводника на дерево устройств. Программа прочитает файл и создаст устройства. Форматы строк (определяются автоматически):

РазделительФормат строкиПример
Без разделителятолько IP или hostname192.168.1.10
Запятаяname,host,port,login,passwordserver1,192.168.1.10,22,root,pass
Двоеточиеname:host:port:login:passwordserver1:192.168.1.10:22:root:pass
Точка с запятойname;host;port;login;passwordserver1;192.168.1.10;22;root;pass
Tabname host port login passwordserver1 192.168.1.10 22 root pass
Пробелыname host port login passwordserver1 192.168.1.10 22 root pass

Поля port, login и password необязательны - если их нет, берутся значения по умолчанию из настроек. Строки, начинающиеся с #, пропускаются как комментарии. Устройства добавляются в папку, на которую был сброшен файл.

4. Drag-and-drop текста

Вы можете скопировать текст из любого источника (таблица, терминал, документ) и перетащить его прямо на дерево устройств. Каждая строка разбирается по тем же правилам, что и текстовый файл.

5. Импорт JSON-файла

Через меню Файл - Хосты - Импортировать список можно загрузить устройства из JSON-файла. Формат файла аналогичен hosts.json.

6. IP-сканер

Через Инструменты - Сканер хостов можно автоматически обнаружить устройства в сети (см. раздел IP-сканер). Найденные устройства добавляются кнопкой Добавить выбранные.

7. Внутренний drag-and-drop

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

8. Двойной клик

Двойной клик по устройству открывает диалог редактирования. Двойной клик по папке - диалог переименования.

Управление устройствами

Дерево устройств

Устройства отображаются в виде иерархического дерева слева. Вы можете:

Список выполнения

Устройства, отмеченные галочкой в дереве, появляются в списке справа. Именно этот список используется при выполнении команд. Можно отметить несколько устройств для массового выполнения.

Группы устройств

В режиме «Список» и «Иконки» устройства отображаются по группам - по папкам из дерева или по сетевым подсетям. Заголовок каждой группы интерактивен:

Секции списка прижаты кверху, а свободное место уходит вниз - так все группы собраны вместе и не растягиваются по всему окну.

Поля устройства

ПолеОписаниеОбязательно
ИмяОтображаемое названиеДа
IP / ХостIP-адрес или доменное имяДа
ЛогинSSH-логин (если пусто - из настроек)Нет
ПарольSSH-парольНет
ПортSSH-порт (по умолчанию 22)Нет
MAC-адресФизический адрес устройстваНет
Использовать sudoРежим sudo: «По умолчанию» (наследовать настройку SSH), «Да» или «Нет»Нет
ЛокальЛокаль SSH-команд: «По умолчанию» (наследовать настройку SSH), «(отключить)» или явное значение из списка / своёНет

Файловый командер

Двухпанельный файловый командер для обмена файлами между вашим компьютером и удалённым сервером. Открывается командой Обмен файлами в контекстном меню устройства.

Интерфейс

Перетаскивание файлов

Контекстное меню

Правый клик по файлу или папке открывает меню с действиями:

Правый клик по пустому месту — создать папку, создать файл, обновить, копировать путь текущей папки.

Горячие клавиши

КлавишаДействие
F2Переименовать
F3Свойства файла
F5Передать файлы в другую панель
F7Создать папку
F8 / DelУдалить
Ctrl+RОбновить активную панель
Alt+Вверх на уровень
BackspaceВверх на уровень
Ctrl+LРедактировать путь
TabПереключить активную панель

Архивы

Мониторинг доступности

Программа автоматически проверяет доступность отмеченных устройств. Когда вы ставите галочку рядом с устройством, программа начинает периодически проверять, доступен ли этот хост.

Как работает проверка

Проверка выполняется путём TCP-соединения к SSH-порту устройства (по умолчанию 22). Это не ICMP-ping - программа проверяет, работает ли SSH-сервис на хосте.

Результат отображается иконкой рядом с устройством:

Проверка запускается автоматически при установке галочки и останавливается при снятии. Также проверка останавливается при удалении устройства или закрытии программы.

Для детальной диагностики сети с ICMP-ping и графиком задержки в реальном времени используйте Пингер.

Настройка портов проверки

В настройках приложения можно указать порты для проверки доступности. По умолчанию проверяется только порт 22 (SSH). Можно добавить порты 80, 443, 3389 и другие.

Запись экрана

DNO Tool позволяет удалённо записывать экран или камеру устройств через два движка:

FFmpeg

  • Захват экрана (x11grab, gdigrab), камеры (v4l2, avfoundation)
  • Протоколы: TCP, UDP, HTTP, RTSP
  • Автоматический перезапуск при обрыве

GStreamer

  • Захват экрана (ximagesrc), камеры (v4l2)
  • RTSP-сервер или TCP-поток
  • Кодеки: x264, x265, MPEG2, MPEG4
  • Автоустановка GStreamer-пакетов

Для записи выберите устройство, правый клик - Удалённая запись. Укажите параметры захвата, кодек и транспорт, затем нажмите «Старт».

Работа с командами

Выбор и выполнение команды

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

  1. Отметьте одно или несколько устройств галочками в дереве
  2. В выпадающем списке задач разверните нужную категорию и выберите команду
  3. Если команда требует параметров - появится диалог ввода значений
  4. Нажмите Выполнить
  5. Результаты появятся в таблице внизу окна
Команды выполняются параллельно на всех выбранных устройствах. Выполнение можно отменить в любой момент кнопкой Отмена.

Выпадающий список задач отображает команды в виде дерева: Категория - Подкатегория - Команда. Категории показаны значком папки, команды - значком терминала. При наведении на команду появляется подсказка с описанием и параметрами.

Если команда содержит параметры (%param1%, %param2%), при нажатии «Выполнить» откроется диалог ввода - для каждого параметра отображается название и текстовое поле.

Типы команд

ТипОписаниеПример
SSHВыполняется на удалённом сервереdnf update -y
SFTPПередача файловЗагрузка RPM-пакета на сервер
LOCALВыполняется на локальной машинеping 192.168.1.1

Команды могут быть многошаговыми: сначала SFTP-загрузка файла, затем SSH-установка. Шаги выполняются последовательно на каждом устройстве.

Автоматические подстановки

В тексте команды можно использовать плейсхолдеры - они автоматически заменятся данными выбранного устройства:

ПлейсхолдерЧто подставится
%login% / %user% / %username%SSH-логин устройства
%hostname% / %host% / %ip%IP-адрес или hostname
%port%SSH-порт
%password% / %pass%Пароль из настроек
%mac%MAC-адрес
%date%Текущая дата (ГГГГ-ММ-ДД)
%time%Текущее время (ЧЧ-ММ-СС)
%sudo%sudo если для устройства включено sudo, иначе пусто - для точечной вставки повышения прав в середину команды

Результаты выполнения

Результаты отображаются в таблице: Устройство, Предпросмотр, Статус.

СтатусОписание
ОжиданиеКоманда в очереди, ещё не запущена
ВыполнениеКоманда выполняется на устройстве
Ожидание вводаКоманда ждёт ввода от пользователя (пароль, подтверждение y/n и т.п.)
УспехКоманда завершилась успешно
НеудачаОшибка при выполнении команды
ОтмененоВыполнение отменено пользователем
Потеря связиСоединение с устройством разорвано

При двойном клике на строке результата открывается окно с полным текстом вывода. Если команда ещё выполняется - вывод обновляется в реальном времени.

Статус «Ожидание ввода» (с жёлтой иконкой) появляется, когда программа обнаруживает в выводе команды приглашение для ввода - запросы пароля (Password:, Пароль:, Enter password:, Введите пароль:, password for user:, пароль для user:, passphrase for key '...':, PIN:, пин-код:), коды подтверждения и одноразовые пароли (verification code:, auth code:, token:, код подтверждения:, код:), подтверждения (y/n, yes/no, Д/н, да/нет, Continue?, Proceed?, Are you sure?, Do you want ...?, OK?, Продолжить?, Вы уверены?, Хотите продолжить?), запросы подключения по ключу SSH (Are you sure you want to continue connecting?, key fingerprint, продолжить подключение?, отпечаток ключа) и приглашения нажать клавишу (Press Enter, Нажмите Enter, Press any key, Hit enter, Нажмите любую клавишу, Нажмите ввод). Как только команда продолжает выполняться (появляется новый вывод), статус автоматически возвращается на «Выполнение». Если включена автоматическая подача пароля sudo, статус «Ожидание ввода» появится лишь на доли секунды и не требует действий.

Интерактивный ввод во время выполнения

Если команда ждёт ввода (пароль, подтверждение, текст), окно результата предоставляет поле ввода и кнопку Отправить. Введите текст и нажмите Enter или кнопку - текст будет отправлен в активную SSH-сессию выбранного устройства. Отправленный ввод отображается в области вывода с пометкой [stdin].

Для приглашений вида «Press Enter» / «Нажмите Enter» достаточно нажать Enter в пустом поле - будет отправлен перевод строки. Пустой ввод отображается как [stdin] ⏎.

Поле ввода работает только для SSH-команд и доступно, пока команда выполняется. После завершения команды (статус «Успех»/«Неудача»/«Отменено»/«Потеря связи») поле и кнопка скрываются. При открытии окна для уже завершённой команды поле ввода также скрыто.

Правый клик по таблице результатов:

Передача файлов (SFTP)

Команды типа SFTP позволяют передавать файлы между вашим компьютером и удалённым сервером. Формат: источник::назначение

./packages/app.rpm::root@192.168.1.10:/tmp/app.rpm

С подстановками:

./packages/%param1%.rpm::%login%@%hostname%:/tmp/%param1%.rpm

Скачивание с сервера:

%login%@%hostname%:/var/log/messages::./logs/

Мастер настройки

Пошаговый мастер первоначальной настройки, доступный в меню Инструменты - Мастер настройки. Запускается автоматически при первом старте, если нет ни списка устройств, ни списка команд. Мастер проводит через все этапы - от выбора режима до настройки Veyon - и сохраняет результат по нажатию «Готово».

Перемещаться между шагами можно кликом по названию в левой панели мастера.

Выбор режима

Первый шаг - выбор режима работы мастера:

РежимОписание
Чистая установкаНачать с пустого списка устройств и команд. Все поля будут пустыми.
Подхватить текущие настройкиЗагрузить уже существующие устройства и команды из ~/.dno-tool/, чтобы отредактировать или дополнить их. Под списком режимов отображается сводка: сколько хостов и команд найдено.

При переключении с «подхвата» обратно на «чистую установку» загруженные данные очищаются - мастер возвращается к пустым спискам.

Хосты

Шаг для добавления и редактирования устройств. Дерево устройств в мастере показывает пять колонок:

КолонкаНазначение
ИмяНазвание устройства - отображается в дереве и списке выполнения
АдресIP-адрес или hostname для SSH-подключения
ЛогинИмя пользователя SSH (если пусто - берётся из настроек приложения)
ПарольПароль SSH (скрыт маской ••••, редактируется двойным кликом)
MACMAC-адрес устройства - используется для проверки доступности и Wake-on-LAN

Доступные действия на этом шаге:

Учётные данные (логин и пароль), указанные в мастере, сохраняются в настройках приложения как значения по умолчанию для SSH-подключений.

Команды

Шаг для наполнения библиотеки команд - задач и скриптов, которые будут выполняться на устройствах:

Подробнее см. Редактор команд.

Локальная машина: SSH-ключи

Шаг для подготовки локальных SSH-ключей оператора. На этом шаге ключи только создаются на вашей машине; их установка на устройства выполняется позже - на шаге «Удалённые → Установка». Доступные операции:

Ключ, используемый программой для подключений по умолчанию, отмечен отдельно. Подробное описание операций - в разделе Управление SSH-ключами.

Локальная машина: Veyon

Шаг для настройки интеграции с Veyon - мониторинга экранов устройств. На этом шаге выполняется локальная установка Veyon, создание пары ключей и настройка WebAPI; публичный ключ будет развёрнут на хостах позже - на шаге «Удалённые → Установка». Вкладки шага:

ВкладкаНазначение
УстановкаПроверка установки Veyon, установка/переустановка компонент
КлючиСоздание и выбор ключа аутентификации
WebAPIНастройка подключения к Veyon Web API
ДиагностикаПроверка доступности сервисов Veyon, журналы ошибок
МиниатюрыПараметры живых миниатюр: качество, размер, формат, стиль

Подробнее см. Veyon: мониторинг и доступ.

Локальная машина: VNC-параметры

Шаг для задания параметров x11vnc, которые применяются при установке VNC-сервера на хостах (на шаге «Удалённые → Установка»). Параметры:

ПараметрПо умолчаниюНазначение
Порт по умолчанию5900VNC-порт; может быть переопределён для конкретного устройства в hosts.json
VNC-парольпустоПароль x11vnc (пусто = без аутентификации). Кнопка «Сгенерировать» создаёт случайный 12-символьный пароль
Кодек по умолчаниюАвтоКодек для VNC-сессии: Авто / Tight (JPEG) / Zlib / Raw
Разрешить изменение размера сессиивключеноИзменение размера рабочего стола под окно клиента (полноценно поддерживается только в VNC-режиме)

Подробнее - в разделе Настройки VNC.

Удалённые: Установка

Шаг потоковой установки выбранных сервисов (SSH, Veyon, VNC) на удалённые хосты через SSH. Ключи (SSH и Veyon) готовятся на локальных шагах и только деплоятся на хосты - повторно генерировать их здесь не нужно.

Интерфейс шага состоит из трёх частей:

ИконкаСтатус
Ожидание - хост в очереди, установка ещё не началась
Успех - сервис установлен и настроен
Ошибка - подробности в детальном логе хоста
Пропуск - сервис не выбран или уже установлен
Остановлено - установка прервана пользователем

Кнопки управления:

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

Состав операций по каждому сервису (выполняются последовательно на каждом хосте в рамках одного SSH-соединения):

СервисЧто выполняется на хосте
SSHSFTP-деплой публичного ключа в authorized_keys для беспарольной авторизации
VeyonИмпорт публичного ключа через veyon-cli authkeys import, установка метода аутентификации (key-file), регистрация и перезапуск Veyon Service, открытие портов firewall
VNCУстановка x11vnc через менеджер пакетов, создание пароля (x11vnc -storepasswd через stdin без появления пароля в командной строке), системный systemd-юнит /etc/systemd/system/x11vnc.service, открытие портов firewall, проверка статуса сервиса
Установка выполняется параллельно - количество потоков берётся из настроек сети приложения. Для каждого хоста открывается одно SSH-соединение, внутри которого сервисы устанавливаются последовательно. Требует root-доступа на хостах (прямой вход под root или обычный пользователь с sudo - см. настройки SSH).

Сводка и завершение

Последний шаг - сводка введённых данных перед сохранением:

Нажмите Готово, чтобы сохранить все данные. Мастер запишет устройства в hosts.json, команды - в commands.json, а настройки SSH, Veyon и VNC - в settings.json. После завершения главное окно приложения автоматически перезагрузит данные.

IP-сканер

Инструмент для поиска устройств в сети. Открывается через Инструменты - Сканер хостов.

Как пользоваться

  1. Укажите сеть или диапазон адресов. Поддерживаются форматы:
    • CIDR: 192.168.1.0/24
    • Полный диапазон: 192.168.1.1-192.168.1.254
    • Короткий диапазон: 192.168.1.1-15
    • Одиночный IP: 192.168.1.100
  2. Выберите режим сканирования: ICMP-ping или проверка портов
  3. При проверке портов - настройте список портов
  4. При необходимости включите определение MAC-адресов и фильтр «только доступные»
  5. Ползунком «Потоки» задайте количество параллельных потоков сканирования (1–128, степень двойки). Значение сохраняется между запусками, по умолчанию 32
  6. Нажмите Сканировать
  7. Отметьте нужные устройства и нажмите Добавить выбранные хосты

Результаты группируются по подсетям и показывают IP-адрес, открытые порты, MAC-адрес и статус доступности. В строке состояния отображается прогресс сканирования: сколько адресов проверено и сколько активных хостов найдено.

Пингер

Инструмент для детальной диагностики сети через ICMP-ping с графиком задержки в реальном времени. Открывается через меню Инструменты - Пингер. В отличие от автоматического мониторинга доступности (см. Мониторинг доступности), пингер выполняет настоящий ICMP-ping и показывает динамику задержки по времени.

Как пользоваться

  1. Введите IP-адрес или hostname целевого устройства
  2. Нажмите Старт
  3. Программа выполняет ICMP-ping каждую секунду и отображает результаты на графике

Цвет линии на графике зависит от задержки:

График отображает до 100 последних точек с автоматическим масштабированием.

Камеры ЕЦХД

Окно для просмотра и записи IP-камер видеонаблюдения по протоколу RTSP. Открывается через меню Инструменты - Камеры ЕЦХД.

Дерево камер

Камеры организованы в виде иерархического дерева: Адрес - Кабинет - Камера. Для каждой камеры отображается:

КолонкаОписание
АдресНазвание адреса (здания/этажа) - группирующий узел
КамераНазвание камеры
ОнлайнДоступность камеры - проверяется периодическим TCP-пингом порта 554 (RTSP)
СтатусТекущее состояние: ожидание, запись, переподключение, ошибка
ВремяДлительность текущей или последней записи

Просмотр потока

Правый клик по камере - Посмотреть открывает RTSP-поток во внешнем плеере. Плеер выбирается в настройках:

Выбранный плеер должен быть установлен в системе. Убедитесь, что vlc, mpv или ffplay доступен в переменной окружения PATH.

Запись потока

Правый клик по камере - Записать запускает запись RTSP-потока в файл формата MKV без перекодирования (поток копируется как есть). Запись выполняется через ffmpeg, который должен быть установлен в системе.

Если связь с камерой прерывается во время записи, программа автоматически возобновляет запись через 3 секунды после восстановления доступности камеры. Намерение записи сохраняется до явной остановки.

Открытие папки с записями

Правый клик по камере или группе - Открыть папку открывает каталог с записями в системном файловом менеджере (Dolphin, Nautilus и др.). Папка создаётся автоматически, если её ещё не существует.

Настройки

Кнопка Настройки открывает диалог с тремя вкладками.

Камеры

Управление списком камер в виде дерева Адрес - Кабинет - Камера:

Подключение

ПараметрОписание
ЛогинЛогин для подключения к RTSP-серверу (общий для всех камер)
ПарольПароль RTSP (общий для всех камер)
Таймаут пингаТаймаут проверки доступности камеры, 1-10 сек (по умолчанию 2)
Интервал опросаПериодичность проверки статуса камер, 5-300 сек (по умолчанию 20)

Просмотр и Запись

ПараметрОписание
Каталог записиПапка для сохранения записей. Если пусто - используется текущий каталог
ПлеерВнешний плеер для просмотра потока (VLC, mpv, ffplay или системный)
Шаблон путиШаблон структуры подпапок внутри каталога записи
Шаблон имени файлаШаблон имени файла записи (формат strftime)

Шаблон пути поддерживает подстановки:

ПодстановкаЗначение
%addr%Адрес
%cabinet%Кабинет
%camera%Имя камеры
%year%Год
%month%Месяц
%day%День
Если шаблон пути не задан, используется структура по умолчанию: Адрес/Год/Месяц/День/Кабинет. Расширение .mkv добавляется к имени файла автоматически. В диалоге настроек показывается живое превью итогового пути и имени файла.
Укажите абсолютный путь в поле «Каталог записи» и убедитесь, что у вас есть права на запись в эту папку. При пустом поле используется текущий рабочий каталог, который при запуске с повышенными привилегиями может быть недоступен для записи.

Настройки

Откройте через Настройки - Конфигурация. Настройки хранятся в ~/.dno-tool/settings.json.

SSH

ПараметрПо умолчаниюОписание
Имя пользователяrootЛогин по умолчанию для новых устройств
ПарольпустоПароль по умолчанию
Порт22SSH-порт по умолчанию
Таймаут подключения10 секВремя ожидания соединения
Таймаут выполнения30 секВремя ожидания выполнения команды
SSH-ключ~/.ssh/id_ed25519Путь к закрытому ключу
Использовать sudo для non-root логинавыключеноАвтоматически подавать пароль sudo для команд с sudo при входе не под root. Пароль берётся из поля «Пароль» устройства (или глобального). Может быть переопределён для конкретного устройства в его диалоге
Локальru_RU.UTF-8Локаль, устанавливаемая перед выполнением SSH-команд для корректного вывода кириллицы и локализованных сообщений. Оставьте поле пустым, если на хостах локаль не сгенерирована (нет в locale -a) - это устранит предупреждение bash: warning: setlocale: LC_ALL: cannot change locale. Может быть переопределена для конкретного устройства в его диалоге

Выполнение команд через sudo

Если на целевых машинах SSH-логин выполняется не под root, а под обычным пользователем с правами sudo (например, членом группы wheel), включите настройку «Использовать sudo для non-root логина» - глобально или для отдельного устройства. При этом:

Для отдельного устройства режим sudo задаётся в диалоге редактирования (двойной клик по устройству): «По умолчанию» (наследовать глобальную настройку), «Да» или «Нет». При сохранении с включённым sudo и пустым паролем показывается предупреждение.

Локаль SSH-команд

Перед выполнением SSH-команды программа устанавливает переменные окружения LANG, LC_ALL и LC_CTYPE для корректного вывода кириллицы и локализованных сообщений (заголовки колонок df, free, статусы systemctl, сообщения об ошибках и т.д.). По умолчанию используется ru_RU.UTF-8.

Если на целевой системе указанная локаль не сгенерирована (отсутствует в locale -a), жёсткая установка вызывает предупреждение bash: warning: setlocale: LC_ALL: cannot change locale (ru_RU.UTF-8). В этом случае:

Настройка локали для отдельного устройства: «По умолчанию» (наследовать глобальную) или явное значение. Поле с выпадающим списком стандартных локалей и возможностью ввода своего значения.

Приоритет логина и пароля

При выполнении команды логин и пароль определяются в следующем порядке:

  1. Данные устройства - если у устройства указаны логин/пароль
  2. Настройки приложения - если поля устройства пусты
  3. Значения по умолчанию - логин root, пароль не указан

Аутентификация по ключу

Если пароль не указан, программа пытается использовать SSH-ключ. Поддерживаются ключи Ed25519 (рекомендуется), RSA и ECDSA.

Мониторинг

ПараметрПо умолчаниюОписание
Таймаут ping2.0 секВремя ожидания ответа при проверке порта
Интервал проверки30 секЧастота проверки доступности устройств
Потоки сканирования8Количество параллельных потоков для IP-сканера

Количество потоков выбирается ползунком из фиксированного набора значений: 1, 2, 4, 8, 16, 32, 48, 64. Текущее значение отображается в лейбле справа от ползунка.

Параметры интеграции с Veyon (URL WebAPI, ключ, интервал миниатюр, качество, сжатие, формат, множитель оверсэмплинга) - см. раздел Veyon: мониторинг и доступ, подраздел «Параметры Veyon».
Параметры встроенного веб-сервера (адрес, порт, пользователи, хранение заданий, пулы потоков) - см. раздел Веб-сервер управления, подраздел «Параметры веб-сервера».

Веб-сервер управления

DNO Tool содержит встроенный веб-сервер (FastAPI), позволяющий управлять устройствами и выполнять команды через браузер - без установки десктоп-приложения на клиентской машине. Сервер запускается как фоновый поток внутри приложения и переиспользует существующие сервисы и исполнители команд (SSH, SFTP, локальные команды).

Возможности веб-интерфейса:

Запуск и настройка

Откройте Настройки - Веб-сервер управления. Диалог позволяет:

После изменения настроек сервер автоматически перезапускается, если он был запущен.

Безопасность. По умолчанию сервер слушает все интерфейсы (0.0.0.0). Обязательно задайте надёжные пароли учётным записям перед запуском в сети. Сервер выполняет SSH/SFTP-команды от имени учётных данных, заданных в настройках и устройствах приложения.

Аутентификация и сессии

Доступ к веб-интерфейсу возможен только для аутентифицированных пользователей. Сервер поддерживает два способа входа:

Каждая вкладка браузера получает свой идентификатор сессии: выбор устройств сохраняется на сервере и восстанавливается после обновления страницы или кратковременной потери связи. Токен хранится в браузере и используется для запросов изображений (иконки, миниатюры), куда браузер не отправляет заголовок Basic.

Многопользовательский режим. В диалоге настройки задаётся список учётных записей. Каждый пользователь видит только свои задания - доступ к чужим заданиям запрещён. Это позволяет работать нескольким администраторам с одного сервера одновременно, не мешая друг другу.

REST API

МетодПутьОписание
GET/api/versionВерсия приложения и параметры пулов потоков
POST/api/loginАутентификация: логин/пароль → session_id и токен
GET/api/hostsДерево устройств с группами (только имя, адрес и идентификатор - без учётных данных)
GET/api/commandsИерархия задач из библиотеки команд
GET/api/configТекущая конфигурация (SSH, сеть, веб-сервер)
POST/api/configОбновить конфигурацию
GET/api/session/hostsВыбранные устройства текущей сессии
POST/api/session/hostsСохранить выбранные устройства сессии
GET/api/jobs/activeАктивные задания текущего пользователя с прогрессом
GET/api/jobs/{id}/eventsСобытия задания (для восстановления после переподключения)
POST/api/jobs/{id}/abortПрервать задание
POST/api/hosts/probeМассовая проверка статусов и миниатюр (Server-Sent Events: по одному событию на устройство по мере готовности)
GET/api/thumbnail/{host}Миниатюра экрана устройства (Veyon)
GET/api/icon/{host}Иконка статуса устройства (SVG, по известному статусу или с пингом)
GET/api/icon-setНабор SVG-иконок онлайн/офлайн одним запросом
GET/api/veyon/statusСтатус интеграции Veyon и интервал обновления миниатюр
WS/ws/executeПотоковое выполнение команды (WebSocket): запуск, прогресс и результаты в реальном времени, поддержка переподключения к запущенному заданию

Параметры веб-сервера

ПараметрПо умолчаниюОписание
Запускать при стартевыключеноАвтозапуск сервера при запуске приложения
Адрес0.0.0.0Адрес привязки (пусто = все интерфейсы)
Порт8765Порт прослушивания (1-65535)
Пользователи-Список учётных записей: логин и пароль для входа в веб-интерфейс. Каждый пользователь видит только свои задания. Сервер не запускается, если список пуст
Хранение заданий30 минСколько хранить завершённые задания (0 = вечно, до перезапуска сервера). Активные задания не удаляются по времени
Потоки (миниатюры/статусы)8Размер пулов для миниатюр Veyon и пингов статусов
Потоки команд8Размер пула для выполнения SSH/SFTP-команд

Управление SSH-ключами

Окно для работы с локальными SSH-ключами оператора: создание, удаление, экспорт, импорт и просмотр известных хостов. Открывается через меню Настройки - Удалённое управление - Управление SSH ключами.

В таблице показаны все ключи в каталоге ~/.ssh: тип, наличие закрытого и открытого файла и совпадают ли они друг с другом. Ключ, который программа использует для подключений по умолчанию, отмечен отдельно. Вверху сразу видно, есть ли оба файла нужного ключа и всё ли с ними в порядке.

Операции

КнопкаДействие
Создать паруСоздать новую пару ключей (Ed25519, RSA или ECDSA) в ~/.ssh
УдалитьУдалить выбранный ключ (обе его части - закрытую и открытую)
ЭкспортСохранить выбранную пару в ZIP-архив
ИмпортЗагрузить ключ (одиночный файл или ZIP-архив) в ~/.ssh. Если есть только закрытый ключ, открытый будет создан автоматически
Извлечь publicСоздать или обновить открытый ключ из выбранного закрытого
Просмотр known_hostsОткрыть окно просмотра известных хостов
Здесь управляются только ключами на вашей машине. Установка ключей на устройства выполняется в мастере первоначальной настройки при выборе SSH в списке сервисов.
Поддерживаются ключи Ed25519 (рекомендуется), RSA и ECDSA. При импорте ключи со стандартными именами распознаются автоматически, для остальных программа предложит ввести имя вручную.

Veyon: мониторинг и доступ

Интеграция с Veyon позволяет просматривать экраны устройств в виде живых миниатюр прямо в списке устройств, а также подключаться к удалённым машинам для просмотра и управления. В отличие от записи экрана, миниатюры обновляются в реальном времени через WebAPI Veyon (HTTP REST, порт 11080).

Требования для работы:

Живые миниатюры экранов

Миниатюры отображаются прямо в списке устройств вместо стандартных иконок. Управление режимом - через панель инструментов списка устройств:

Если на машине оператора Veyon не установлен или его сервис остановлен, кнопка миниатюр и переключатель стиля скрываются с панели инструментов - остаются только фильтр онлайн и ползунок размера. В режиме миниатюр без Veyon вместо снимков экрана показываются иконки онлайн/оффлайн, окрашенные по реальному статусу устройств. Когда Veyon становится доступен (запущен сервис), скрытые элементы автоматически возвращаются - приложение проверяет состояние каждые 60 секунд.

Миниатюры имеют формат 16:9, центрируются на прозрачном квадрате. Обновление происходит по таймеру для каждого устройства индивидуально с заданным интервалом и небольшим разбросом для равномерной нагрузки. При изменении размера ползунком миниатюры мгновенно перерисовываются из уже загруженного изображения - без ожидания следующего обновления.

Доступны два стиля отображения миниатюр (настраивается в диалоге Настройки Veyon на вкладке «Миниатюры»):

Миниатюры запрашиваются только для онлайн-устройств. При потере связи миниатюра автоматически очищается, а при восстановлении - возобновляется. При группировке устройств по папкам миниатюры корректно отображаются внутри каждой группы.

Просмотр экрана и управление

Для удалённого доступа к экрану устройства:

  1. Правый клик по устройству в списке
  2. Меню Veyon - Просмотр экрана или Управление
  3. Откроется окно Veyon с подключением к удалённой машине
РежимОписание
Просмотр экранаТолько наблюдение за экраном удалённой машины
УправлениеПолный удалённый доступ: мышь, клавиатура

Подключение выполняется через veyon-cli remoteaccess view|control <host>. При закрытии DNO Tool все активные окна Veyon автоматически останавливаются.

Веб-интерфейс также поддерживает удалённый рабочий стол прямо в браузере - без установки VNC-клиента. Подробнее - в разделе Удалённый рабочий стол.

Команды Veyon (блокировка экрана и ввода, перезагрузка, выключение, завершение сеанса, вход пользователя, открытие сайта, запуск программы, текстовое сообщение, включение по сети) доступны в контекстном меню устройства, на панели инструментов над списком и в веб-интерфейсе. На панели и в веб-интерфейсе команды применяются сразу ко всем выбранным устройствам.

Контекстное меню устройства разделено на два подменю: «Управление» (включение по сети, перезагрузка, выключение, завершение сеанса, вход пользователя - через SSH и DBus, показывается всегда) и «Veyon» (просмотр экрана, управление, блокировки, вход пользователя через Veyon, сообщения, перезапуск сервиса - скрывается целиком при отсутствии Veyon). Команда «Выход пользователя» в подменю «Veyon» завершает сеанс штатно через Veyon WebAPI, а устойчивый вариант «Завершить сеанс» в подменю «Управление» работает через SSH на уровне системы и не требует Veyon.

Команда «Вход пользователя» в подменю «Управление» выполняет удалённый вход через системный DBus-сервис org.mos.auth (доступен на ROSA Linux/MOS при настроенной подсистеме mos-auth). Сервис работает только пока на хосте активен экран входа SDDM и никто не вошёл в систему - при ошибке входа показывается конкретная причина (кто залогинен, выключена ли подсистема mos-auth, какая тема SDDM используется) и способ устранения.

Кнопки питания (включение по сети, перезагрузка, выключение, завершение сеанса) больше не зависят от Veyon и всегда видны - даже если Veyon не установлен или сервис остановлен.

При отсутствии Veyon на машине оператора подменю «Veyon» в контекстном меню автоматически скрывается - остаются только функции из «Управления», не зависящие от Veyon. Меню Настройки Veyon остаётся доступным всегда: через него можно диагностировать состояние, запустить остановленный сервис и настроить ключи.

Команда «Перезагрузить сервис» выполняет по SSH systemctl restart veyon на всех выбранных устройствах и доступна в тех же местах, что и остальные команды Veyon, включая панель инструментов окна удалённого доступа VNC. Удобна при зависании Veyon Service на хостах или после изменения его настроек.

Диалог «Настройки Veyon»

Открывается через меню Настройки - Удалённое управление - Настройки Veyon. Вверху диалога показывается статус Veyon: «✅ установлен и активен», «❌ veyon-cli не найден» или «⚠️ сервис остановлен». Вкладки остаются доступными всегда, когда найден veyon-cli - операции с ключами и конфигом не требуют запущенного сервиса. При остановленном сервисе показывается жёлтое предупреждение с подсказкой запустить его на вкладке «Установка». Содержит пять вкладок:

WebAPI

  • Включение/отключение WebAPI-сервера
  • Настройка порта (по умолчанию 11080)
  • Управление Veyon Service: запуск, остановка, перезапуск
  • Регистрация/отмена автозапуска сервиса

Ключи

  • Таблица ключей: имя, тип, ID пары, группа доступа
  • Создание пары ключей (private + public)
  • Удаление, экспорт, импорт ключей
  • Извлечение открытого ключа из закрытого
  • Изменение группы доступа
  • Выбор активного ключа для миниатюр

Миниатюры

  • Интервал обновления (1-60 сек)
  • Качество изображения (0-100)
  • Уровень сжатия PNG (0-9)

Диагностика

  • Проверка наличия veyon-cli
  • Проверка ключа аутентификации
  • Проверка доступности WebAPI
  • Проверка статуса Veyon Service

Установка

  • Linux: установка пакетов через dnf
  • Windows: ссылка на MSI-установщик
  • Проверка наличия пакетов
Операции с ключами, настройка WebAPI и управление сервисом требуют прав администратора. На Linux DNO Tool запускается через pkexec и уже имеет нужные права. На Windows - запустите программу от имени администратора для этих операций.

Параметры Veyon

ПараметрПо умолчаниюОписание
URL WebAPIhttp://localhost:11080/api/v1/Адрес WebAPI сервера Veyon
Имя ключаteacherКлюч аутентификации для захвата миниатюр
Интервал миниатюр5 секЧастота обновления миниатюр экранов
Качество75Качество JPEG (0-100, выше - лучше). Действует только для формата JPEG
Сжатие3Уровень сжатия PNG (0-9, меньше - лучше качество). Действует только для формата PNG
Ширина миниатюры128 пиксШирина запрашиваемой миниатюры (фактически запрашивается с множителем оверсэмплинга для чёткости)
ФорматpngФормат изображения: png (без потерь) или jpeg (сжатие с потерями)
Множитель2Множитель оверсэмплинга (1-4): во сколько раз запрашивать шире отображаемого

Удалённый рабочий стол

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

При открытии удалённого рабочего стола интерфейс проверяет доступность обоих режимов и выбирает VNC, если он доступен, иначе - Veyon. Если недоступны оба - подключение не выполняется.

Как подключиться

  1. В веб-интерфейсе переключитесь в режим «Миниатюры»
  2. Наведите курсор на миниатюру устройства - в правом верхнем углу появится кнопка монитора
  3. Нажмите на неё - откроется новое окно с удалённым рабочим столом
Кнопка удалённого доступа появляется только если на машине оператора установлен Veyon (и включён RFB-мост) или на хосте доступен VNC-порт.

Панель управления

Окно удалённого рабочего стола содержит вертикальную панель управления слева (в стиле Proxmox/noVNC). Панель можно перетащить за маркер к любому краю окна - сверху, снизу, слева или справа. Панель автоматически скрывается через 2 секунды бездействия и появляется при наведении курсора.

Питание

  • Выключение и перезагрузка хоста
  • Включение по сети (Wake-on-LAN)

Veyon

  • Блокировка и разблокировка экрана
  • Блокировка и разблокировка ввода
  • Текстовое сообщение пользователю
  • Перезапуск сервиса Veyon на хосте

Буфер обмена

  • Отправка текста на удалённую машину
  • Получение текста из буфера обмена хоста
  • Только в VNC-режиме

Дополнительно

  • Клавиши-модификаторы: Ctrl, Alt, Win (залипание)
  • Отправка Tab, Esc, Ctrl+Alt+Del

Настройки

  • Совместный сеанс, обрезка по окну, масштабирование
  • Кодек (авто/tight/zlib/raw), качество и сжатие

Прочее

  • Полноэкранный режим
  • Отключение от хоста

Подсказки

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

Ограничения Veyon-режима. При подключении через Veyon недоступны буфер обмена и изменение размера сессии - Veyon пропускает только базовые сообщения VNC. Для полнофункциональной работы установите x11vnc на хосты (через мастер настройки или диагностику).

Настройки VNC

Диалог параметров x11vnc для VNC-режима удалённого доступа. Открывается через меню Настройки - Удалённое управление - Настройки VNC. Содержит одну вкладку «Параметры».

ПараметрПо умолчаниюНазначение
Порт по умолчанию5900Глобальный VNC-порт. Может быть переопределён для конкретного устройства в hosts.json
VNC-парольпустоПароль x11vnc (пусто = без аутентификации). Кнопка «Сгенерировать» создаёт случайный 12-символьный пароль
Кодек по умолчаниюАвтоКодек VNC-сессии: Авто, Tight (JPEG), Zlib или Raw
Разрешить изменение размера сессиивключеноИзменение размера рабочего стола под окно клиента. Полноценно поддерживается только в VNC-режиме; в Veyon-режиме недоступно
Диагностика VNC (проверка порта, баннера RFB, автозапуска сервиса и аутентификации) выполняется в отдельном окне Диагностика. Установка x11vnc на хосты - на шаге мастера «Удалённые → Установка».

Диагностика

Окно «Диагностика» (меню Настройки - Удалённое управление - Диагностика) помогает быстро понять, что работает на выбранных устройствах, а что нет - без необходимости подключаться к каждому вручную.

Что проверяет

КомпонентЧто проверяется
SSHМожно ли подключиться и выполнить команду, а также какие права sudo доступны (root, NOPASSWD, sudo с паролем или нет sudo)
VeyonЗапущен ли Veyon на устройстве и возможно ли подключение к нему
VNCДоступен ли удалённый рабочий стол, запускается ли он автоматически после перезагрузки и принимает ли пароль

Как пользоваться

  1. Отметьте, что именно хотите проверить (SSH, Veyon, VNC - по умолчанию выбрано всё)
  2. Отметьте устройства в списке
  3. Нажмите Запустить - все проверки выполняются одновременно
  4. В таблице появится результат: ✅ работает, ❌ ошибка, ⚠ предупреждение и т. п.
  5. Двойной клик по строке открывает подробный отчёт по конкретному компьютеру

Результаты сгруппированы по компонентам, так что видно сразу - например, что SSH работает, а VNC нет. Состав колонок меняется в зависимости от того, какие компоненты вы выбрали.

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

Редактор команд

Откройте через Настройки - Редактировать задачи. Слева - дерево категорий и команд, справа - форма редактирования.

Создание и редактирование

Поля команды

ПолеОписаниеОбязательно
НазваниеОтображаемое имя команды в спискеДа
ОписаниеПодсказка при наведении на командуНет
ТаймаутВремя ожидания в секундах (0-7200)Нет
ПараметрыСписок имён параметров (%param1%, %param2%)Нет

Шаги команды

Каждая команда содержит один или несколько шагов (SSH, SFTP, LOCAL). Управление шагами:

Импорт и экспорт команд

В редакторе можно передавать команды между экземплярами DNO Tool через текст в кодировке Base64:

Файловый импорт и экспорт библиотеки

Важно! Изменения в редакторе сохраняются в ~/.dno-tool/commands.json. При обновлении приложения файл не перезаписывается автоматически - используйте импорт для обновления библиотеки команд.

Меню «Вид»

Меню Вид управляет видимостью элементов главного окна. Оба пункта - переключатели с галочкой: щёлкните повторно, чтобы вернуть скрытый элемент.

ПунктНазначение
Панель инструментов спискаПоказывает или скрывает тулбар над списком устройств: переключатель режима миниатюр, ползунок размера, фильтр «только онлайн», кнопки Veyon-фичей
Результаты выполненияПоказывает или скрывает таблицу результатов команд внизу окна

Импорт и экспорт

Устройства

Команды

Обновление

Программа может проверять обновления через диалог Помощь - О программе. При открытии диалога проверка выполняется автоматически; если доступна новая версия, появляется кнопка «Обновить».

Также можно отдельно обновить библиотеку команд - commands.json скачивается с последнего релиза на GitHub.

Файл commands.json не входит в поставку! Он скачивается отдельно при установке или обновлении и хранится в ~/.dno-tool/commands.json.

DNO Tool v0.9.16 - Руководство пользователя
Вопросы и предложения: github.com/xp9k/dno-tool