DNO Tool
Приложение для удалённого администрирования компьютеров на Linux (MOS/ALT) и Windows через SSH. Позволяет выполнять команды на десятках машин одновременно, передавать файлы, мониторить состояние устройств и управлять конфигурациями - всё из одного окна.
О программе
DNO Tool предназначен для системных администраторов, которым нужно управлять парком рабочих станций. Программа работает по протоколу SSH - не требует установки агентов на целевые машины.
Основные возможности:
- Управление пакетами, службами, пользователями на удалённых машинах
- Мониторинг ресурсов, сети, дисков, логов
- Настройка безопасности: SELinux, SSH, аудит, firewall
- Передача файлов по SFTP, установка SSH-ключей
- Удалённая запись экрана (FFmpeg и GStreamer)
- Мониторинг экранов через Veyon: живые миниатюры, просмотр и управление
- Настройка KDE/Plasma на рабочих станциях
- Сканирование сети, проверка доступности устройств
Установка
| Требование | Минимум |
|---|---|
| ОС (администратор) | Windows 10+ или Linux |
| ОС (целевые машины) | Любой Linux с SSH-сервером |
| Сетевой доступ | SSH (порт 22) до целевых машин |
Windows
- Скачайте
dno-tool-X.X.X-windows.zipс релиза на GitHub - Распакуйте в удобную папку
- Запустите
dno-tool.exe
Linux (RPM)
- Скачайте
dno-tool-X.X.X-mos.x86_64.rpmс релиза - Установите:
sudo dnf install ./dno-tool-*.rpm - Запустите через меню приложений или
dno-tool
Для запуска с правами администратора используйте пункт меню с pkexec - он сохраняет переменные пользовательского окружения.
commands.json находился в директории ~/.dno-tool/. При первом запуске или обновлении он скачивается с GitHub автоматически.
Первый запуск
При первом запуске программа автоматически создаст директорию ~/.dno-tool/ со следующими файлами:
| Файл | Назначение |
|---|---|
settings.json | Настройки приложения (SSH, сеть) |
hosts.json | Список устройств |
commands.json | Библиотека команд |
dno-tool.log | Файл логов |
Если при первом старте у вас нет ни списка устройств, ни списка команд, автоматически запустится мастер первоначальной настройки - он проведёт вас по всем шагам (см. ниже).
Для начала работы нужно:
- Добавить хотя бы одно устройство (см. ниже)
- Указать IP-адрес/hostname, логин и пароль для SSH-доступа
- Отметить устройство галочкой, выбрать команду и нажать Выполнить
Системный трей
DNO Tool может работать в фоновом режиме, сворачиваясь в системный трей. Это удобно при длительных операциях (выполнение команд на десятках машин, запись экрана, мониторинг): окно можно спрятать, а программа продолжит работу.
Поведение
- Закрытие окна (крестик или Alt+F4) - скрывает окно в трей, приложение остаётся работать в фоне
- Клик по иконке трея - показывает/прячет окно
- Контекстное меню трея - пункты «Открыть» (показать окно) и «Выход» (полностью закрыть приложение)
- Тултип - показывает название и версию приложения
Индикатор занятости
Иконка трея отражает состояние приложения:
| Иконка | Состояние | Тултип |
|---|---|---|
| Зелёная | Нет активных задач | DNO Tool |
| «Занятая» | Выполняется хотя бы одна команда | DNO Tool - выполнение заданий |
Переключение происходит автоматически: как только запускается команда, иконка становится «занятой», а когда все команды завершены - возвращается в «онлайн».
Добавление устройств
DNO Tool предоставляет несколько способов добавления устройств - от ручного ввода до автоматического сканирования сети.
1. Вручную
- Правый клик по дереву устройств или папке - Добавить устройство
- Заполните поля: имя, IP-адрес, логин, пароль, порт (по умолчанию 22)
- При необходимости укажите MAC-адрес
- Нажмите Сохранить
Устройство будет добавлено в выбранную папку или в корень дерева.
2. Диапазон IP-адресов
Правый клик по дереву - Добавить диапазон IP. Позволяет массово создать устройства для целой подсети.
Поддерживаемые форматы:
| Формат | Пример | Результат |
|---|---|---|
| CIDR | 192.168.1.0/24 | 254 адреса |
| Короткий диапазон | 192.168.1.1-15 | 15 адресов |
| Полный диапазон | 192.168.1.1-192.168.1.254 | 254 адреса |
| Один IP | 192.168.1.100 | 1 адрес |
Диалог позволяет задать префикс имени (по умолчанию host), порт, логин и пароль. Имя каждого устройства формируется как префикс-N - сквозная нумерация с единицы (например, host-1, host-2, …), что исключает дубликаты имён для подсетей больше /24. Максимально 1024 адреса за один раз.
3. Drag-and-drop текстового файла (.txt)
Перетащите .txt файл из проводника на дерево устройств. Программа прочитает файл и создаст устройства. Форматы строк (определяются автоматически):
| Разделитель | Формат строки | Пример |
|---|---|---|
| Без разделителя | только IP или hostname | 192.168.1.10 |
| Запятая | name,host,port,login,password | server1,192.168.1.10,22,root,pass |
| Двоеточие | name:host:port:login:password | server1:192.168.1.10:22:root:pass |
| Точка с запятой | name;host;port;login;password | server1;192.168.1.10;22;root;pass |
| Tab | name host port login password | server1 192.168.1.10 22 root pass |
| Пробелы | name host port login password | server1 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. Двойной клик
Двойной клик по устройству открывает диалог редактирования. Двойной клик по папке - диалог переименования.
Управление устройствами
Дерево устройств
Устройства отображаются в виде иерархического дерева слева. Вы можете:
- Создавать папки - через контекстное меню (правый клик)
- Перетаскивать устройства между папками внутри дерева
- Контекстное меню - правый клик: добавить, редактировать, удалить, пинг
- Отмечать галочками устройства для добавления в список выполнения
Список выполнения
Устройства, отмеченные галочкой в дереве, появляются в списке справа. Именно этот список используется при выполнении команд. Можно отметить несколько устройств для массового выполнения.
Группы устройств
В режиме «Список» и «Иконки» устройства отображаются по группам - по папкам из дерева или по сетевым подсетям. Заголовок каждой группы интерактивен:
- Клик по заголовку сворачивает или разворачивает содержимое группы. Рядом с названием показывается уголок-индикатор:
▾- развёрнуто,▸- свёрнуто - Счётчик «онлайн/всего» - бейдж рядом с названием группы (например
3/5). Обновляется в реальном времени при изменении статуса устройств, при добавлении и удалении - Авто-сворачивание пустых групп - при включённом фильтре «только онлайн» группы без доступных устройств сворачиваются автоматически. Когда в свёрнутой группе появляется онлайн-хост, она разворачивается обратно. Ручные сворачивания пользователя при этом не сбрасываются
Секции списка прижаты кверху, а свободное место уходит вниз - так все группы собраны вместе и не растягиваются по всему окну.
Поля устройства
| Поле | Описание | Обязательно |
|---|---|---|
| Имя | Отображаемое название | Да |
| IP / Хост | IP-адрес или доменное имя | Да |
| Логин | SSH-логин (если пусто - из настроек) | Нет |
| Пароль | SSH-пароль | Нет |
| Порт | SSH-порт (по умолчанию 22) | Нет |
| MAC-адрес | Физический адрес устройства | Нет |
| Использовать sudo | Режим sudo: «По умолчанию» (наследовать настройку SSH), «Да» или «Нет» | Нет |
| Локаль | Локаль SSH-команд: «По умолчанию» (наследовать настройку SSH), «(отключить)» или явное значение из списка / своё | Нет |
Файловый командер
Двухпанельный файловый командер для обмена файлами между вашим компьютером и удалённым сервером. Открывается командой Обмен файлами в контекстном меню устройства.
Интерфейс
- Левая панель — локальная файловая система, правая — удалённый сервер. Каждая панель имеет собственный тулбар и адресную строку с навигацией по сегментам пути
- Тулбар панели: вверх, назад, вперёд, домой, обновить, создать папку, создать файл, скачать/загрузить, удалить, переименовать, копировать путь
- Адресная строка показывает путь в виде хлебных крошек — клик по сегменту переходит в соответствующую папку. Кнопка ✏ переключает в режим ручного ввода пути
- Диск-селектор (Windows, локальная панель) — переключение между дисками в одной строке с адресом
- Статус-бар внизу показывает ход операций с прогресс-баром и кнопкой отмены
Перетаскивание файлов
- Между панелями — перетащите файлы из одной панели в другую для загрузки или скачивания
- Внутри панели — перетащите файлы в папку для перемещения
- Из Windows Explorer — перетащите файлы из проводника в локальную панель для импорта или в удалённую для загрузки на сервер
Контекстное меню
Правый клик по файлу или папке открывает меню с действиями:
- Открыть — предпросмотр файла (на удалённом сервере)
- Упаковать в tar.gz — создать архив в текущей папке
- Распаковать — распаковать архив (tar, zip, 7z, rar) в текущую папку. На удалённом сервере распаковка выполняется напрямую через SSH
- Переименовать, Удалить
- Копировать имя, Копировать путь
- Свойства — информация о файле, редактирование прав доступа
Правый клик по пустому месту — создать папку, создать файл, обновить, копировать путь текущей папки.
Горячие клавиши
| Клавиша | Действие |
|---|---|
| F2 | Переименовать |
| F3 | Свойства файла |
| F5 | Передать файлы в другую панель |
| F7 | Создать папку |
| F8 / Del | Удалить |
| Ctrl+R | Обновить активную панель |
| Alt+↑ | Вверх на уровень |
| Backspace | Вверх на уровень |
| Ctrl+L | Редактировать путь |
| Tab | Переключить активную панель |
Архивы
- Упаковка — создаёт
.tar.gzархив в текущей папке (локально или на сервере) - Распаковка на сервере — поддерживаются форматы
.tar.gz,.tgz,.tar,.tar.bz2,.tar.xz,.zip,.7z,.rar. Распаковка выполняется прямо на сервере; требуются установленные утилиты (unzip,7z,unrar). Запароленные архивы не зависают — показывается сообщение об ошибке
Мониторинг доступности
Программа автоматически проверяет доступность отмеченных устройств. Когда вы ставите галочку рядом с устройством, программа начинает периодически проверять, доступен ли этот хост.
Как работает проверка
Проверка выполняется путём TCP-соединения к SSH-порту устройства (по умолчанию 22). Это не ICMP-ping - программа проверяет, работает ли SSH-сервис на хосте.
- Интервал проверки - настраивается (по умолчанию 30 секунд, с разбросом +/-10% для равномерности нагрузки)
- Таймаут соединения - настраивается (по умолчанию 2 секунды)
- Порт проверки - совпадает с SSH-портом устройства (можно указать другие порты в настройках)
Результат отображается иконкой рядом с устройством:
- Зелёная иконка - порт открыт, устройство доступно
- Красная иконка - порт закрыт или хост недоступен
Проверка запускается автоматически при установке галочки и останавливается при снятии. Также проверка останавливается при удалении устройства или закрытии программы.
Настройка портов проверки
В настройках приложения можно указать порты для проверки доступности. По умолчанию проверяется только порт 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-пакетов
Для записи выберите устройство, правый клик - Удалённая запись. Укажите параметры захвата, кодек и транспорт, затем нажмите «Старт».
Работа с командами
Выбор и выполнение команды
Команды организованы в иерархические категории. Отметьте устройства галочками в дереве, выберите команду из выпадающего списка и нажмите Выполнить.
- Отметьте одно или несколько устройств галочками в дереве
- В выпадающем списке задач разверните нужную категорию и выберите команду
- Если команда требует параметров - появится диалог ввода значений
- Нажмите Выполнить
- Результаты появятся в таблице внизу окна
Выпадающий список задач отображает команды в виде дерева: Категория - Подкатегория - Команда. Категории показаны значком папки, команды - значком терминала. При наведении на команду появляется подсказка с описанием и параметрами.
Если команда содержит параметры (%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] ⏎.
Правый клик по таблице результатов:
- Сохранить текущий результат - сохранить вывод выбранного устройства в файл
- Сохранить все результаты - экспортировать все результаты в табличный файл
- Очистить все - удалить все строки из таблицы
Передача файлов (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 (скрыт маской ••••, редактируется двойным кликом) |
| MAC | MAC-адрес устройства - используется для проверки доступности и Wake-on-LAN |
Доступные действия на этом шаге:
- Добавить устройство - создать новое устройство в выбранной папке или в корне
- Добавить диапазон IP - массово создать устройства для подсети или диапазона адресов (см. Добавление устройств)
- Очистить - удалить все устройства из дерева мастера
- Drag-and-drop - перетаскивать устройства между папками, бросать
.txt-файлы и текст из буфера обмена для импорта - Двойной клик - редактировать значение в любой колонке прямо в дереве
Учётные данные (логин и пароль), указанные в мастере, сохраняются в настройках приложения как значения по умолчанию для SSH-подключений.
Команды
Шаг для наполнения библиотеки команд - задач и скриптов, которые будут выполняться на устройствах:
- Загрузить с сервера - скачать актуальную библиотеку команд из репозитория проекта (нужен интернет)
- Импортировать из файла - загрузить свой
commands.jsonс диска - Просмотр - дерево загруженных команд с именем и описанием каждой задачи
Подробнее см. Редактор команд.
Локальная машина: SSH-ключи
Шаг для подготовки локальных SSH-ключей оператора. На этом шаге ключи только создаются на вашей машине; их установка на устройства выполняется позже - на шаге «Удалённые → Установка». Доступные операции:
- Создать пару - создать новую пару ключей (Ed25519, RSA или ECDSA) в
~/.ssh - Удалить / Экспорт / Импорт / Извлечь public - управление существующими ключами в каталоге
~/.ssh - Просмотр known_hosts - просмотр известных хостов
Ключ, используемый программой для подключений по умолчанию, отмечен отдельно. Подробное описание операций - в разделе Управление SSH-ключами.
Локальная машина: Veyon
Шаг для настройки интеграции с Veyon - мониторинга экранов устройств. На этом шаге выполняется локальная установка Veyon, создание пары ключей и настройка WebAPI; публичный ключ будет развёрнут на хостах позже - на шаге «Удалённые → Установка». Вкладки шага:
| Вкладка | Назначение |
|---|---|
| Установка | Проверка установки Veyon, установка/переустановка компонент |
| Ключи | Создание и выбор ключа аутентификации |
| WebAPI | Настройка подключения к Veyon Web API |
| Диагностика | Проверка доступности сервисов Veyon, журналы ошибок |
| Миниатюры | Параметры живых миниатюр: качество, размер, формат, стиль |
Подробнее см. Veyon: мониторинг и доступ.
Локальная машина: VNC-параметры
Шаг для задания параметров x11vnc, которые применяются при установке VNC-сервера на хостах (на шаге «Удалённые → Установка»). Параметры:
| Параметр | По умолчанию | Назначение |
|---|---|---|
| Порт по умолчанию | 5900 | VNC-порт; может быть переопределён для конкретного устройства в hosts.json |
| VNC-пароль | пусто | Пароль x11vnc (пусто = без аутентификации). Кнопка «Сгенерировать» создаёт случайный 12-символьный пароль |
| Кодек по умолчанию | Авто | Кодек для VNC-сессии: Авто / Tight (JPEG) / Zlib / Raw |
| Разрешить изменение размера сессии | включено | Изменение размера рабочего стола под окно клиента (полноценно поддерживается только в VNC-режиме) |
Подробнее - в разделе Настройки VNC.
Удалённые: Установка
Шаг потоковой установки выбранных сервисов (SSH, Veyon, VNC) на удалённые хосты через SSH. Ключи (SSH и Veyon) готовятся на локальных шагах и только деплоятся на хосты - повторно генерировать их здесь не нужно.
Интерфейс шага состоит из трёх частей:
- Слева - дерево хостов с галочками. Отметьте устройства, на которые нужно установить сервисы. Под деревом - метка с перечнем сервисов, выбранных на шаге «Выбор режима».
- Справа - таблица статусов «Хост × Сервисы». Колонки формируются динамически из выбранных сервисов (SSH / Veyon / VNC). Каждая ячейка отображает иконку статуса:
| Иконка | Статус |
|---|---|
| ⏳ | Ожидание - хост в очереди, установка ещё не началась |
| ✅ | Успех - сервис установлен и настроен |
| ❌ | Ошибка - подробности в детальном логе хоста |
| ⏭ | Пропуск - сервис не выбран или уже установлен |
| ⏹ | Остановлено - установка прервана пользователем |
- Снизу - общий лог с краткими сообщениями о ходе установки (по одной строке на событие).
Кнопки управления:
- Установить - запустить потоковую установку на отмеченных хостах. Перед запуском мастер проверяет готовность ключей (SSH и Veyon) - если ключ не подготовлен, запуск блокируется с подсказкой вернуться на соответствующий локальный шаг.
- Прервать - остановить установку. Текущие операции на хостах завершаются корректно, оставшиеся хосты помечаются как остановленные.
Двойной клик по строке таблицы открывает модальное окно с детальным логом по конкретному хосту - там фиксируются все команды, вывод и ошибки для каждого сервиса отдельно.
Состав операций по каждому сервису (выполняются последовательно на каждом хосте в рамках одного SSH-соединения):
| Сервис | Что выполняется на хосте |
|---|---|
| SSH | SFTP-деплой публичного ключа в 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-ключей (сгенерирован / пропущен)
- Статус настройки Veyon
- Статус VNC-параметров
- Статус удалённой установки сервисов
Нажмите Готово, чтобы сохранить все данные. Мастер запишет устройства в hosts.json, команды - в commands.json, а настройки SSH, Veyon и VNC - в settings.json. После завершения главное окно приложения автоматически перезагрузит данные.
IP-сканер
Инструмент для поиска устройств в сети. Открывается через Инструменты - Сканер хостов.
Как пользоваться
- Укажите сеть или диапазон адресов. Поддерживаются форматы:
- CIDR:
192.168.1.0/24 - Полный диапазон:
192.168.1.1-192.168.1.254 - Короткий диапазон:
192.168.1.1-15 - Одиночный IP:
192.168.1.100
- CIDR:
- Выберите режим сканирования: ICMP-ping или проверка портов
- При проверке портов - настройте список портов
- При необходимости включите определение MAC-адресов и фильтр «только доступные»
- Ползунком «Потоки» задайте количество параллельных потоков сканирования (1–128, степень двойки). Значение сохраняется между запусками, по умолчанию 32
- Нажмите Сканировать
- Отметьте нужные устройства и нажмите Добавить выбранные хосты
Результаты группируются по подсетям и показывают IP-адрес, открытые порты, MAC-адрес и статус доступности. В строке состояния отображается прогресс сканирования: сколько адресов проверено и сколько активных хостов найдено.
Пингер
Инструмент для детальной диагностики сети через ICMP-ping с графиком задержки в реальном времени. Открывается через меню Инструменты - Пингер. В отличие от автоматического мониторинга доступности (см. Мониторинг доступности), пингер выполняет настоящий ICMP-ping и показывает динамику задержки по времени.
Как пользоваться
- Введите IP-адрес или hostname целевого устройства
- Нажмите Старт
- Программа выполняет ICMP-ping каждую секунду и отображает результаты на графике
Цвет линии на графике зависит от задержки:
- Зелёный - до 50 мс
- Жёлтый - 51-200 мс
- Красный - более 200 мс
График отображает до 100 последних точек с автоматическим масштабированием.
Камеры ЕЦХД
Окно для просмотра и записи IP-камер видеонаблюдения по протоколу RTSP. Открывается через меню Инструменты - Камеры ЕЦХД.
Дерево камер
Камеры организованы в виде иерархического дерева: Адрес - Кабинет - Камера. Для каждой камеры отображается:
| Колонка | Описание |
|---|---|
| Адрес | Название адреса (здания/этажа) - группирующий узел |
| Камера | Название камеры |
| Онлайн | Доступность камеры - проверяется периодическим TCP-пингом порта 554 (RTSP) |
| Статус | Текущее состояние: ожидание, запись, переподключение, ошибка |
| Время | Длительность текущей или последней записи |
Просмотр потока
Правый клик по камере - Посмотреть открывает RTSP-поток во внешнем плеере. Плеер выбирается в настройках:
- VLC - по умолчанию
- mpv
- ffplay
- Системный - открыть через ассоциацию операционной системы
vlc, mpv или ffplay доступен в переменной окружения PATH.
Запись потока
Правый клик по камере - Записать запускает запись RTSP-потока в файл формата MKV без перекодирования (поток копируется как есть). Запись выполняется через ffmpeg, который должен быть установлен в системе.
- Остановить - корректное завершение записи (ffmpeg получает команду на плавный выход)
- Остановить все в группе - останавливает все записи внутри адреса или кабинета
- Остановить все - останавливает все активные записи
Открытие папки с записями
Правый клик по камере или группе - Открыть папку открывает каталог с записями в системном файловом менеджере (Dolphin, Nautilus и др.). Папка создаётся автоматически, если её ещё не существует.
Настройки
Кнопка Настройки открывает диалог с тремя вкладками.
Камеры
Управление списком камер в виде дерева Адрес - Кабинет - Камера:
- Кнопки Добавить адрес, Добавить кабинет, Добавить камеру - создание новых узлов
- Двойной клик по ячейке - редактирование названия или IP-адреса
- Перетаскивание мышью - перемещение кабинетов между адресами и камер между кабинетами
- Кнопка Сканер... - импорт найденных IP-адресов из встроенного IP-сканера (см. IP-сканер)
- Кнопка Удалить - удаление выбранного узла
Подключение
| Параметр | Описание |
|---|---|
| Логин | Логин для подключения к 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 | Логин по умолчанию для новых устройств |
| Пароль | пусто | Пароль по умолчанию |
| Порт | 22 | SSH-порт по умолчанию |
| Таймаут подключения | 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] password for ...:и подаёт пароль из настроек устройства - Команды без
sudoполучают его автоматически в начале (если для устройства включено sudo) - Плейсхолдер
%sudo%в тексте команды раскрывается вsudoесли sudo включено, иначе в пустую строку - удобно для точечной вставки повышения прав в середину составных команд, напримерecho x | %sudo%tee /etc/y - Установка сервисов в мастере настройки (SSH-ключи, Veyon, VNC) также корректно работает через 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). В этом случае:
- Глобально - очистите поле «Локаль» в настройках SSH. Переменные окружения не будут устанавливаться, предупреждение исчезнет
- Для отдельного устройства - в диалоге редактирования выберите пункт «(отключить)» в поле «Локаль». Экспорт локали будет отключён только для этого хоста
- Можно также выбрать другую локаль из списка или ввести свою (например,
en_US.UTF-8илиC.UTF-8)
Настройка локали для отдельного устройства: «По умолчанию» (наследовать глобальную) или явное значение. Поле с выпадающим списком стандартных локалей и возможностью ввода своего значения.
Приоритет логина и пароля
При выполнении команды логин и пароль определяются в следующем порядке:
- Данные устройства - если у устройства указаны логин/пароль
- Настройки приложения - если поля устройства пусты
- Значения по умолчанию - логин
root, пароль не указан
Аутентификация по ключу
Если пароль не указан, программа пытается использовать SSH-ключ. Поддерживаются ключи Ed25519 (рекомендуется), RSA и ECDSA.
Мониторинг
| Параметр | По умолчанию | Описание |
|---|---|---|
| Таймаут ping | 2.0 сек | Время ожидания ответа при проверке порта |
| Интервал проверки | 30 сек | Частота проверки доступности устройств |
| Потоки сканирования | 8 | Количество параллельных потоков для IP-сканера |
Количество потоков выбирается ползунком из фиксированного набора значений: 1, 2, 4, 8, 16, 32, 48, 64. Текущее значение отображается в лейбле справа от ползунка.
Веб-сервер управления
DNO Tool содержит встроенный веб-сервер (FastAPI), позволяющий управлять устройствами и выполнять команды через браузер - без установки десктоп-приложения на клиентской машине. Сервер запускается как фоновый поток внутри приложения и переиспользует существующие сервисы и исполнители команд (SSH, SFTP, локальные команды).
- Дерево устройств с группами, поиск, массовый выбор
- Дерево задач из библиотеки команд с поиском
- Потоковое выполнение команд с выводом результатов в реальном времени (WebSocket)
- Ввод параметров команды через модальный диалог
- Режимы отображения устройств: список (с иконками онлайн/оффлайн), иконки, миниатюры (Veyon)
- Группировка выбранных устройств по папкам
- Проверка статуса устройств и живые миниатюры экранов
- Удалённый рабочий стол прямо в браузере (VNC/Veyon) - без установки VNC-клиента
- При отсутствии Veyon на машине оператора Veyon-элементы (кнопки команд, миниатюры) автоматически скрываются - остаются только статусы и базовые функции
- Многопользовательский режим: у каждого пользователя свои задания и выбор устройств
- Аутентификация по логину/паролю, восстановление сессии после обновления страницы
Запуск и настройка
Откройте Настройки - Веб-сервер управления. Диалог позволяет:
- Включать/выключать сервер кнопкой «Запустить»/«Остановить»
- Открывать веб-интерфейс в браузере одной кнопкой
- Задавать адрес и порт прослушивания
- Управлять пользователями: добавлять, редактировать и удалять учётные записи; у каждого пользователя - свои задания и выбор устройств. Пароли в таблице пользователей скрыты маской и видны только при редактировании ячейки
- Включать автозапуск сервера при старте приложения
- Настраивать размеры пулов потоков (миниатюры/статусы и команды) ползунками из набора
1, 2, 4, 8, 16, 32, 48, 64
После изменения настроек сервер автоматически перезапускается, если он был запущен.
0.0.0.0). Обязательно задайте надёжные пароли учётным записям перед запуском в сети. Сервер выполняет SSH/SFTP-команды от имени учётных данных, заданных в настройках и устройствах приложения.
Аутентификация и сессии
Доступ к веб-интерфейсу возможен только для аутентифицированных пользователей. Сервер поддерживает два способа входа:
- Форма входа в браузере - при открытии страницы пользователь вводит логин и пароль, сервер создаёт сессию и выдаёт токен
- HTTP Basic - логин/пароль передаются в заголовке каждого запроса (для скриптов и внешних клиентов)
Каждая вкладка браузера получает свой идентификатор сессии: выбор устройств сохраняется на сервере и восстанавливается после обновления страницы или кратковременной потери связи. Токен хранится в браузере и используется для запросов изображений (иконки, миниатюры), куда браузер не отправляет заголовок 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 | Открыть окно просмотра известных хостов |
Veyon: мониторинг и доступ
Интеграция с Veyon позволяет просматривать экраны устройств в виде живых миниатюр прямо в списке устройств, а также подключаться к удалённым машинам для просмотра и управления. В отличие от записи экрана, миниатюры обновляются в реальном времени через WebAPI Veyon (HTTP REST, порт 11080).
- Veyon установлен на машине оператора (
veyon-cliдоступен в PATH) - Veyon Service запущен на машине оператора
- WebAPI-плагин включён в Veyon Configurator (порт 11080 по умолчанию)
- Создан ключ аутентификации и выбран в настройках Veyon
- На целевых машинах Veyon Service запущен (для просмотра и управления)
Живые миниатюры экранов
Миниатюры отображаются прямо в списке устройств вместо стандартных иконок. Управление режимом - через панель инструментов списка устройств:
- Кнопка-тумблер миниатюр - включает/выключает режим живых миниатюр
- Ползунок размера - регулирует размер иконок/миниатюр от 32 до 512 пикселей
- Кнопка «только онлайн» - фильтрует список, показывая только доступные устройства
Если на машине оператора Veyon не установлен или его сервис остановлен, кнопка миниатюр и переключатель стиля скрываются с панели инструментов - остаются только фильтр онлайн и ползунок размера. В режиме миниатюр без Veyon вместо снимков экрана показываются иконки онлайн/оффлайн, окрашенные по реальному статусу устройств. Когда Veyon становится доступен (запущен сервис), скрытые элементы автоматически возвращаются - приложение проверяет состояние каждые 60 секунд.
Миниатюры имеют формат 16:9, центрируются на прозрачном квадрате. Обновление происходит по таймеру для каждого устройства индивидуально с заданным интервалом и небольшим разбросом для равномерной нагрузки. При изменении размера ползунком миниатюры мгновенно перерисовываются из уже загруженного изображения - без ожидания следующего обновления.
Доступны два стиля отображения миниатюр (настраивается в диалоге Настройки Veyon на вкладке «Миниатюры»):
- monitor - миниатюра вписана в рамку монитора (по умолчанию)
- plain - голая картинка 16:9 без рамки
Миниатюры запрашиваются только для онлайн-устройств. При потере связи миниатюра автоматически очищается, а при восстановлении - возобновляется. При группировке устройств по папкам миниатюры корректно отображаются внутри каждой группы.
Просмотр экрана и управление
Для удалённого доступа к экрану устройства:
- Правый клик по устройству в списке
- Меню Veyon - Просмотр экрана или Управление
- Откроется окно 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-установщик
- Проверка наличия пакетов
pkexec и уже имеет нужные права. На Windows - запустите программу от имени администратора для этих операций.
Параметры Veyon
| Параметр | По умолчанию | Описание |
|---|---|---|
| URL WebAPI | http://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 - прямой доступ к x11vnc на хосте. Полноценный удалённый рабочий стол: буфер обмена, изменение размера сессии, все кодеки. Рекомендуемый режим
- Veyon - доступ через Veyon с аутентификацией по ключу. Ограниченный режим: недоступны буфер обмена и изменение размера сессии. Используется, если на хосте не установлен x11vnc, но есть Veyon
При открытии удалённого рабочего стола интерфейс проверяет доступность обоих режимов и выбирает VNC, если он доступен, иначе - Veyon. Если недоступны оба - подключение не выполняется.
Как подключиться
- В веб-интерфейсе переключитесь в режим «Миниатюры»
- Наведите курсор на миниатюру устройства - в правом верхнем углу появится кнопка монитора
- Нажмите на неё - откроется новое окно с удалённым рабочим столом
Панель управления
Окно удалённого рабочего стола содержит вертикальную панель управления слева (в стиле Proxmox/noVNC). Панель можно перетащить за маркер к любому краю окна - сверху, снизу, слева или справа. Панель автоматически скрывается через 2 секунды бездействия и появляется при наведении курсора.
Питание
- Выключение и перезагрузка хоста
- Включение по сети (Wake-on-LAN)
Veyon
- Блокировка и разблокировка экрана
- Блокировка и разблокировка ввода
- Текстовое сообщение пользователю
- Перезапуск сервиса Veyon на хосте
Буфер обмена
- Отправка текста на удалённую машину
- Получение текста из буфера обмена хоста
- Только в VNC-режиме
Дополнительно
- Клавиши-модификаторы: Ctrl, Alt, Win (залипание)
- Отправка Tab, Esc, Ctrl+Alt+Del
Настройки
- Совместный сеанс, обрезка по окну, масштабирование
- Кодек (авто/tight/zlib/raw), качество и сжатие
Прочее
- Полноэкранный режим
- Отключение от хоста
Подсказки
Все кнопки панели управления и основного интерфейса снабжены всплывающими подсказками. Используются собственные подсказки в тёмной теме вместо стандартных браузерных - они появляются с небольшой задержкой и плавно скрываются при уходе курсора.
Настройки VNC
Диалог параметров x11vnc для VNC-режима удалённого доступа. Открывается через меню Настройки - Удалённое управление - Настройки VNC. Содержит одну вкладку «Параметры».
| Параметр | По умолчанию | Назначение |
|---|---|---|
| Порт по умолчанию | 5900 | Глобальный VNC-порт. Может быть переопределён для конкретного устройства в hosts.json |
| VNC-пароль | пусто | Пароль x11vnc (пусто = без аутентификации). Кнопка «Сгенерировать» создаёт случайный 12-символьный пароль |
| Кодек по умолчанию | Авто | Кодек VNC-сессии: Авто, Tight (JPEG), Zlib или Raw |
| Разрешить изменение размера сессии | включено | Изменение размера рабочего стола под окно клиента. Полноценно поддерживается только в VNC-режиме; в Veyon-режиме недоступно |
Диагностика
Окно «Диагностика» (меню Настройки - Удалённое управление - Диагностика) помогает быстро понять, что работает на выбранных устройствах, а что нет - без необходимости подключаться к каждому вручную.
Что проверяет
| Компонент | Что проверяется |
|---|---|
| SSH | Можно ли подключиться и выполнить команду, а также какие права sudo доступны (root, NOPASSWD, sudo с паролем или нет sudo) |
| Veyon | Запущен ли Veyon на устройстве и возможно ли подключение к нему |
| VNC | Доступен ли удалённый рабочий стол, запускается ли он автоматически после перезагрузки и принимает ли пароль |
Как пользоваться
- Отметьте, что именно хотите проверить (SSH, Veyon, VNC - по умолчанию выбрано всё)
- Отметьте устройства в списке
- Нажмите Запустить - все проверки выполняются одновременно
- В таблице появится результат: ✅ работает, ❌ ошибка, ⚠ предупреждение и т. п.
- Двойной клик по строке открывает подробный отчёт по конкретному компьютеру
Результаты сгруппированы по компонентам, так что видно сразу - например, что SSH работает, а VNC нет. Состав колонок меняется в зависимости от того, какие компоненты вы выбрали.
Редактор команд
Откройте через Настройки - Редактировать задачи. Слева - дерево категорий и команд, справа - форма редактирования.
Создание и редактирование
- Правый клик по дереву - добавить категорию или команду, удалить элемент
- Перетаскивание - изменение структуры дерева
- Двойной клик на команде - редактирование свойств: название, описание, таймаут, параметры
Поля команды
| Поле | Описание | Обязательно |
|---|---|---|
| Название | Отображаемое имя команды в списке | Да |
| Описание | Подсказка при наведении на команду | Нет |
| Таймаут | Время ожидания в секундах (0-7200) | Нет |
| Параметры | Список имён параметров (%param1%, %param2%) | Нет |
Шаги команды
Каждая команда содержит один или несколько шагов (SSH, SFTP, LOCAL). Управление шагами:
- Добавить SSH-команду - открывает Bash-редактор с подсветкой синтаксиса
- Добавить SFTP-команду - открывает SFTP-редактор с выбором направления и обзором файлов
- Добавить локальную команду - открывает Bash-редактор
- Двойной клик на шаге - редактирование
- Удалить - удалить выбранный шаг
Импорт и экспорт команд
В редакторе можно передавать команды между экземплярами DNO Tool через текст в кодировке Base64:
- Экспорт - выбрать команду, нажать «Экспорт», скопировать код
- Импорт - вставить код Base64. Программа определит формат:
- Полная команда - заменяет текущую
- Список шагов - добавляет к текущей команде
Файловый импорт и экспорт библиотеки
- Файл - Команды - Экспортировать команды - сохранить всю библиотеку в JSON-файл
- Файл - Команды - Импортировать команды - загрузить команды из JSON-файла
~/.dno-tool/commands.json. При обновлении приложения файл не перезаписывается автоматически - используйте импорт для обновления библиотеки команд.
Меню «Вид»
Меню Вид управляет видимостью элементов главного окна. Оба пункта - переключатели с галочкой: щёлкните повторно, чтобы вернуть скрытый элемент.
| Пункт | Назначение |
|---|---|
| Панель инструментов списка | Показывает или скрывает тулбар над списком устройств: переключатель режима миниатюр, ползунок размера, фильтр «только онлайн», кнопки Veyon-фичей |
| Результаты выполнения | Показывает или скрывает таблицу результатов команд внизу окна |
Импорт и экспорт
Устройства
- Экспорт - Файл - Хосты - Экспортировать список - сохранить список устройств в JSON-файл
- Импорт - Файл - Хосты - Импортировать список - загрузить устройства из JSON-файла
Команды
- Экспорт - Файл - Команды - Экспортировать команды - сохранить библиотеку команд в JSON-файл
- Импорт - Файл - Команды - Импортировать команды - загрузить команды из JSON-файла
- Обмен командами через Base64 - в редакторе команд можно экспортировать/импортировать отдельные команды в виде текста (см. Редактор команд)
Обновление
Программа может проверять обновления через диалог Помощь - О программе. При открытии диалога проверка выполняется автоматически; если доступна новая версия, появляется кнопка «Обновить».
- На Windows - скачивается zip-архив с новой версией в папку
Downloads - На Linux (RPM) - проверяется наличие новой версии на GitHub, показывается уведомление с подсказкой обновить пакет через менеджер пакетов
Также можно отдельно обновить библиотеку команд - commands.json скачивается с последнего релиза на GitHub.
commands.json не входит в поставку! Он скачивается отдельно при установке или обновлении и хранится в ~/.dno-tool/commands.json.
DNO Tool v0.9.16 - Руководство пользователя
Вопросы и предложения: github.com/xp9k/dno-tool