USB-устройство, подключённое к серверу Proxmox, не появляется внутри виртуальной машины автоматически — гипервизор изолирует хостовое оборудование, и для передачи флешки, токена, принтера или USB-адаптера в гостевую систему требуется явная настройка проброса. Proxmox VE поддерживает два основных способа: проброс отдельного USB-устройства по идентификатору и проброс целого USB-порта, к которому можно подключать разные устройства.
Ниже разберём оба метода через веб-интерфейс и командную строку, ограничения по типам машин (QEMU/KVM и LXC), а также типичные ошибки вроде неработающего устройства после перезагрузки хоста. Инструкция актуальна для современных версий Proxmox VE; в старых релизах часть опций веб-интерфейса может отсутствовать.
Что нужно знать перед пробросом USB в Proxmox
Проброс USB в Proxmox работает только для виртуальных машин на базе KVM/QEMU. Для контейнеров LXC механизм другой — там устройство прокидывается через bind-mount или прямой доступ к файлу устройства, и веб-интерфейс такой опции не предлагает. Если у вас контейнер, стандартная кнопка «Add USB Device» будет недоступна.
Важно понимать разницу между двумя режимами проброса:
- 🔌 Проброс по Vendor/Device ID — конкретное устройство привязывается к ВМ независимо от того, в какой порт оно воткнуто. Удобно для токенов и ключей, которые могут переподключаться.
- 🔢 Проброс по порту (hostport) — в ВМ передаётся всё, что подключено к конкретному физическому порту сервера. Подходит, если устройства меняются, а порт фиксирован.
- ⚡ USB 3.0 (xhci) — для устройств USB 3.x стоит выбирать контроллер
usb3, иначе возможны проблемы со скоростью или совместимостью. - 🚫 Устройство, проброшенное в ВМ, становится недоступным хосту — например, проброшенный USB-диск нельзя одновременно смонтировать в Proxmox.
⚠️ Внимание: не пробрасывайте в виртуальную машину USB-накопитель, с которого загружается сам Proxmox, или устройство, где лежат образы дисков ВМ. После старта машины хост потеряет к нему доступ, что может привести к сбоям хранилища.
Способ 1: проброс USB через веб-интерфейс Proxmox
Самый простой путь — графический интерфейс. Откройте нужную виртуальную машину в панели Proxmox, перейдите на вкладку Hardware и нажмите Add → USB Device. В появившемся окне доступен выбор режима: Use USB Vendor/Device ID или Use USB Port.
В первом случае выберите устройство из выпадающего списка — Proxmox покажет все обнаруженные на хосте USB-девайсы с их идентификаторами. Во втором случае укажите номер порта в формате, который отображается в списке (например, 1-2). Для устройств USB 3.x отметьте опцию Use USB3, чтобы гостевая система получила контроллер xHCI вместо более медленного эмулируемого USB 2.0.
После добавления устройство появится в списке оборудования ВМ. Изменения подхватываются при следующем запуске машины; горячее подключение возможно, но работает не для всех гостевых ОС и типов устройств — надёжнее выполнить полную перезагрузку ВМ.
☑️ Проброс USB через веб-интерфейс
Способ 2: проброс USB через командную строку
Терминал даёт больше контроля и позволяет автоматизировать настройку. Сначала определите подключённые устройства командой lsusb — она покажет список вида Bus 001 Device 003: ID 0781:5567 SanDisk Cruzer Blade, где 0781:5567 — это Vendor ID и Product ID.
Для проброса по идентификатору устройства выполните:
qm set 100 --usb0 host=0781:5567
Здесь 100 — ID виртуальной машины, а usb0 — номер виртуального USB-слота (можно usb0, usb1 и так далее). Для проброса целого порта и включения USB 3.0 команда выглядит так:
qm set 100 --usb0 host=1-2,usb3=1
Чтобы удалить проброшенное устройство, используйте qm set 100 --delete usb0. Проверить текущую конфигурацию можно командой qm config 100 — строки usb0, usb1 и т.д. покажут все назначенные устройства. Изменения записываются в файл конфигурации /etc/pve/qemu-server/100.conf, его можно править и вручную, но через qm безопаснее — команда проверяет синтаксис.
Сравнение способов проброса
Выбор метода зависит от сценария использования. Краткая сводка:
| Критерий | По Vendor/Device ID | По порту (hostport) |
|---|---|---|
| Привязка | К конкретному устройству | К физическому порту сервера |
| Замена устройства | Требует перенастройки | Работает с любым устройством в том же порту |
| Несколько одинаковых устройств | Не различает экземпляры | Различает по порту |
| Переподключение в другой порт | Продолжает работать | Перестаёт работать |
| Типичный сценарий | Токены, ключи, HASP | Флешки, временные устройства |
Проброс целого USB-контроллера через PCI passthrough
Если стандартный проброс работает нестабильно — устройство отваливается, не определяется после перезагрузки или требует прямого доступа к железу (типично для USB-сетевых адаптеров, тюнеров, звуковых карт) — есть альтернатива: проброс целого USB-контроллера как PCI-устройства. Тогда все порты этого контроллера целиком уходят в виртуальную машину.
Для этого на хосте должна быть включена поддержка IOMMU (Intel VT-d или AMD-Vi) в BIOS/UEFI и в загрузчике. Затем через Hardware → Add → PCI Device в настройках ВМ выбирается нужный контроллер. Учтите: хост полностью теряет эти порты, поэтому метод подходит только если на отдельном контроллере не висят критичные для Proxmox устройства — например, клавиатура, через которую вы управляете сервером локально.
⚠️ Внимание: PCI passthrough требует корректной изоляции устройства в отдельной IOMMU-группе. Если контроллер оказался в одной группе с другим оборудованием, проброс может не сработать или затронуть соседние устройства. Проверяйте группы командой find /sys/kernel/iommu_groups/ -type l перед настройкой.
Как проверить, включён ли IOMMU
Выполните на хосте команду dmesg | grep -e DMAR -e IOMMU. Если вывод пустой — скорее всего, IOMMU отключён в BIOS или не добавлен параметр ядра (intel_iommu=on для Intel или amd_iommu=on для AMD в настройках загрузчика). После изменения параметров требуется перезагрузка хоста.
Типичные проблемы и их решение
Устройство добавлено, но в гостевой системе его нет — самая частая жалоба. Начните диагностику с хоста: команда lsusb должна показывать устройство до запуска ВМ. Если его нет даже там, проблема в физическом подключении, питании порта или неисправности самого устройства, а не в Proxmox.
Другие распространённые ситуации:
- 🔄 Устройство пропадает после перезагрузки хоста — возможная причина в том, что устройство сменило номер на шине. Проброс по Vendor/Device ID решает это лучше, чем по порту.
- 🐢 Низкая скорость передачи данных — проверьте, включён ли режим
usb3; без него диски работают через медленный эмулируемый контроллер. - 🪟 Windows не видит устройство — установите в гостевой системе актуальные драйверы VirtIO и проверьте Диспетчер устройств на наличие неизвестного оборудования.
- 🔁 Устройство занято хостом — если Proxmox смонтировал USB-диск или использует его, проброс может завершиться ошибкой; отмонтируйте устройство на хосте перед стартом ВМ.
Если ничего не помогает, посмотрите журнал ВМ: qm start 100 в терминале выводит ошибки запуска, а dmesg на хосте покажет события USB-подсистемы. Часто там видны конкретные причины — например, конфликт адресов или отказ в доступе.
Проброс USB в LXC-контейнеры
Контейнеры LXC не поддерживают стандартный механизм USB-пасsthrough из веб-интерфейса, поскольку они разделяют ядро с хостом. Тем не менее передать устройство можно, отредактировав конфигурацию контейнера вручную: задаётся доступ к файлу устройства в /dev и права через cgroup. Точные параметры зависят от типа устройства и версии Proxmox, поэтому сверяйтесь с официальной документацией Proxmox VE для вашего релиза.
Для привилегированных контейнеров такой подход проще, для непривилегированных потребуется дополнительная настройка прав. Если устройство критично и требует изоляции, надёжнее использовать полноценную виртуальную машину вместо контейнера.
Часто задаваемые вопросы
Можно ли пробросить USB-устройство в работающую ВМ без перезагрузки?
Да, Proxmox поддерживает горячее подключение USB для запущенных машин — устройство добавляется через Hardware → Add или командой qm set и подхватывается на лету. Однако не все гостевые системы и устройства корректно обрабатывают hotplug, поэтому при проблемах выполните полную перезагрузку ВМ.
Почему ВМ не стартует после добавления USB-устройства?
Возможные причины: устройство физически отключено от сервера, занято хостом (например, смонтировано) или указан неверный идентификатор/порт. Проверьте наличие устройства через lsusb и попробуйте запустить машину из терминала командой qm start <ID>, чтобы увидеть текст ошибки.
Сколько USB-устройств можно пробросить в одну ВМ?
Proxmox позволяет добавить несколько записей usb0–usb4 (до пяти устройств) в конфигурацию одной виртуальной машины. Если нужно больше, рассмотрите проброс целого USB-контроллера через PCI passthrough.
Будет ли работать проброшенная USB-флешка как загрузочная в ВМ?
Да, если в настройках ВМ в разделе Options → Boot Order поднять приоритет USB-устройства или выбрать его в меню загрузки через консоль (клавиша Esc при старте в SeaBIOS). Для UEFI-загрузки с USB поведение может отличаться — проверяйте настройки OVMF.
Что делать, если устройство отваливается во время работы ВМ?
Проверьте стабильность питания USB-порта и качество кабеля, отключите энергосбережение USB в гостевой ОС и попробуйте другой порт сервера. Если сбои продолжаются, перейдите на PCI passthrough контроллера — прямой доступ к железу обычно устраняет такие проблемы.