Как установить клиент DistKontrolUSB в Proxmox VE и Другие системы виртуализации?

Настройка подключения DistKontrolUSB к Proxmox

В этой статье описан порядок настройки консольного клиента DistKontrolUSB на узле Proxmox VE для подключения USB-устройств с концентратора DistKontrol по SSL с авторизацией по логину и паролю и автоматическим подключением устройств при перезагрузке сервера.

Важно!
  • При настройке необходимо иметь доступ к CLI Proxmox VE с правами администратора.

Настройка

1. Загрузка клиента с концентратора

Если доступ к WEB-интерфейсу концентратора настроен через HTTPS, для загрузки клиента на Proxmox необходимо временно отключить "Принудительно только защищённое соединение" в разделе "Система" > "Общие настройки" > "Web Администратор" > "Безопасное соединение". После загрузки клиента и сертификата включите параметр обратно.

На узле Proxmox выполните:

cd /root
wget --no-check-certificate http://<IP-адрес концентратора>/client/dkclientx86_64

2. Загрузка сертификата

Сертификат необходимо предварительно скачать из WEB-интерфейса концентратора: "Система" > "Сертификаты" > "USB". Выберите нужный сертификат и нажмите "Загрузить".

Будет загружен файл .pem.

3. Перенос сертификата на Proxmox

Передайте сертификат на Proxmox в каталог /etc/ssl/certs/:

mv /home/romanenkov/distkontrolusb20260522-143032.pem /etc/ssl/certs/

4. Установка клиента

chmod +x dkclientx86_64
mv dkclientx86_64 /usr/sbin/dkclientx86_64

5. Загрузка USB/IP-модулей

Загрузите модули и сделайте их постоянными:

modprobe usbip-core
modprobe vhci-hcd
cat >/etc/modules-load.d/distkontrol-usbip.conf <<'EOF'
usbip-core
vhci-hcd
EOF

Проверьте, что модули загрузились:

lsmod | egrep 'usbip|vhci'

6. Создание systemd-сервиса

cat >/etc/systemd/system/dkclient.service <<'EOF'
[Unit]
Description=DistKontrolUSB Client
Wants=network-online.target
After=network-online.target
RequiresMountsFor=/usr/sbin
[Service]
Type=simple
ExecStartPre=/sbin/modprobe usbip-core
ExecStartPre=/sbin/modprobe vhci-hcd
ExecStartPre=/bin/sleep 3
ExecStart=/usr/sbin/dkclientx86_64
Restart=always
RestartSec=5
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target
EOF

7. Включение автозапуска

systemctl daemon-reload
systemctl enable --now dkclient
systemctl status dkclient

8. Подключение группы портов концентратора

/usr/sbin/dkclientx86_64 -t 'MANUAL HUB ADD,192.168.1.41:7577'

9. Настройка конфигурации клиента

Откройте файл конфигурации:

nano ./.dkcl

Добавьте:

[General]
SSLCAFile=/etc/ssl/certs/distkontrolusb20260522-143032.pem
SSLPort=7577
PresavedPasswords=220c3e6f0c4c.5142,Логин\\Пароль

10. Включение автоматического подключения устройств

/usr/sbin/dkclientx86_64 -t 'AUTO USE HUB,DKUSB64-Gr-07'

DKUSB64-Gr-07 — имя подключаемого концентратора. Его можно узнать командой:

/usr/sbin/dkclientx86_64 -t 'LIST'

Проверьте конфигурацию:

nano ./.dkcl

Файл должен выглядеть так:

[Settings]
ManualHubs=192.168.1.41:7577
[General]
SSLCAFile=/etc/ssl/certs/distkontrolusb20260522-143032.pem
SSLPort=7577
PresavedPasswords=220c3e6f0c4c.5142,Логин\\Пароль,220c3e6f0c4c.5143,Логин\\Пароль,220c3e6f0c4c.5144,Логин\\Пароль
[AutoShare]
220c3e6f0c4c=1
All=0
220c3e6f0c4c.4096.34148.5142=0
220c3e6f0c4c.4096.34148=0
220c3e6f0c4c.5142=0
  • ManualHubs — IP-адрес подключаемого концентратора и порт группы портов.
  • SSLCAFile — путь до сертификата. Используется, если необходимо шифрование трафика.
  • SSLPort — порт шифрованного соединения. Используется, если необходимо шифрование трафика.
  • PresavedPasswords — устройство, порт, логин, пароль. Используется, если необходимо автоподключение устройств. Если нужно автоподключение нескольких портов, конфигурация для каждого порта указывается в той же строке через запятую: PresavedPasswords=220c3e6f0c4c.5142,Логин\\Пароль,220c3e6f0c4c.5143,Логин\\Пароль

Проверка

11. Проверка автоподключения

Остановите работу клиента:

/usr/sbin/dkclientx86_64 -t 'EXIT'

Остановите службу клиента:

sudo systemctl stop dkclient.service

Проверьте, что больше нет процессов клиента:

sudo ps aux | grep [d]kc

При необходимости завершите оставшиеся процессы:

sudo kill -9 <номера процессов>

Запустите сервис:

sudo systemctl start dkclient.service

Проверьте статус службы:

sudo systemctl status dkclient.service

Если в выводе указано "Active: active (running)", служба работает корректно.

Проверьте статус клиента:

/usr/sbin/dkclientx86_64 -t 'LIST'

Пример корректного вывода:

DistKontrolUSB Client IPC, below are the available devices:
(Value in brackets = address, * = Auto-Use)

DKUSB64-Gr-07 (DKUSB64-Gr-07:7577)*
*--> USB 3.16 (DKUSB64-Gr-07.5144) (In-use by you)
*--> USB 3.15 (DKUSB64-Gr-07.5143) (In-use by you)
*--> USB 3.14 (DKUSB64-Gr-07.5142) (In-use by you)

Auto-Find currently on
Auto-Use All currently off
Reverse Lookup currently off
Reverse SSL Lookup currently off
DistKontrolUSB Client not running as a service
  • (In-use by you) — устройство подключилось и используется этим хостом.
  • * напротив имени концентратора — автозапуск установлен на все порты подключённой группы.

12. Проверка появления устройств в системе

Проверьте, что USB-устройства появились в системе:

lsblk

Также убедитесь, что устройства видны в интерфейсе Proxmox VE.

Настройка завершена. Далее администратор Proxmox VE с нужными правами создаёт "Resource Mappings" и подключает туда необходимые устройства, проброшенные через DistKontrol.

Важно!

Действия, аналогичные описанным в инструкции, наиболее вероятно будут корректно работать с такими системами, как: KVM + libvirt, установленный на Linux, oVirt, а также zVirt, РЕД Виртуализация, Альт Виртуализация, Брест и ROSA Virtualization, так как они созданы на базе KVM и используют Linux в качестве хостовой ОС.

Другие наиболее популярные системы виртуализации, такие как VMware, Hyper-V и Xen, не поддерживают описанный в инструкции или аналогичный способ подключения на уровне гипервизора.