Подробный гайд: Протокол SPICE в гостевой системе для Linux и Windows.

Подробный гайд по настройке протокола SPICE внутри гостевой ОС. Установка агентов, драйверов QXL, проброс USB, буфер обмена для Linux и Windows.

2026.08.04                  


Подробный гайд: Протокол SPICE в гостевой системе для Linux и Windows.Подробный гайд: Протокол SPICE в гостевой системе для Linux и Windows.

1. Что такое SPICE

SPICE — это протокол удалённого доступа к виртуальным машинам, разработанный изначально для QEMU/KVM.

Он обеспечивает:

  • передачу изображения рабочего стола;
  • ввод мыши и клавиатуры;
  • звук;
  • общий буфер обмена;
  • проброс USB-устройств;
  • перенаправление смарт-карт;
  • более плавную графику по сравнению с классическим VNC;
  • лучшую интеграцию гостевой и хостовой систем.

SPICE чаще всего используется в связке с:

  • QEMU/KVM;
  • libvirt;
  • virt-manager;
  • Proxmox VE;
  • oVirt;
  • GNOME Boxes.

2. Как SPICE работает внутри виртуальной машины

Внутри гостевой системы важны несколько компонентов:

2.1. Видеоадаптер

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

  • QXL — классический вариант для SPICE;
  • virtio-gpu — более современный paravirtualized GPU;
  • иногда VGA или cirrus, но они подходят хуже.

Для полноценной работы SPICE лучше использовать:

QXL

или

virtio-gpu

2.2. SPICE guest tools

Это гостевые утилиты, которые улучшают интеграцию:

  • общий буфер обмена;
  • автоматическое изменение разрешения экрана;
  • синхронизация времени;
  • передача информации о гостевой системе;
  • улучшенная работа мыши;
  • поддержка некоторых функций SPICE.

В Linux обычно пакет называется:

spice-vdagent

В Windows:

SPICE Guest Tools

или драйверы из набора:

virtio-win

2.3. SPICE vdagent

Это агент, работающий внутри гостевой системы.

Он отвечает за:

  • копирование/вставку между хостом и гостем;
  • изменение разрешения под размер окна клиента;
  • позиционирование мыши;
  • некоторые служебные функции интеграции.

Процесс обычно называется:

spice-vdagent

или:

spice-vdagentd

3. Что нужно установить в гостевой системе

Ниже рассмотрены основные гостевые ОС.


4. SPICE в гостевой Linux-системе

4.1. Debian / Ubuntu / Linux Mint

Обновите систему:

sudo apt update
sudo apt upgrade -y

Установите SPICE-агент:

sudo apt install spice-vdagent -y

При необходимости можно также установить:

sudo apt install spice-webdavd -y

Этот пакет нужен, если вы хотите использовать общий доступ к файлам через WebDAV.


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

systemctl status spice-vdagentd

Включите автозапуск:

sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd

4.2. Fedora / RHEL / CentOS Stream / Rocky Linux / AlmaLinux

Для Fedora/RHEL-семейства:

sudo dnf install spice-vdagent -y

Для общего доступа к файлам:

sudo dnf install spice-webdavd -y

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

systemctl status spice-vdagentd

Автозапуск:

sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd

4.3. Arch Linux / Manjaro

sudo pacman -S spice-vdagent

Для WebDAV:

sudo pacman -S spice-webdavd

Автозапуск:

sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd

5. Проверка работы SPICE в Linux-госте

5.1. Проверка процессов

Выполните:

ps aux | grep spice

Вы должны увидеть процессы вроде:

/usr/sbin/spice-vdagentd
spice-vdagent

5.2. Проверка служб

systemctl status spice-vdagentd

Если используется WebDAV:

systemctl status spice-webdavd

5.3. Проверка видеоадаптера

Посмотрите, какое видеоустройство используется:

lspci | grep -i vga

или:

lspci | grep -i display

Примеры подходящих вариантов:

Red Hat, Inc. QXL paravirtual graphic card

или:

Red Hat, Inc. Virtio GPU

6. Настройка графики для SPICE в Linux-госте

6.1. QXL

Если в виртуальной машине выбран QXL, в госте обычно не требуется ставить отдельный драйвер — поддержка уже есть в ядре.

Проверить можно так:

lspci -k | grep -A 3 -i vga

Пример:

Kernel driver in use: qxl

6.2. virtio-gpu

Для virtio-gpu:

lspci -k | grep -A 3 -i display

Пример:

Kernel driver in use: virtio-pci

Виртуальное графическое устройство обычно определяется как:

Virtio GPU

7. Общий буфер обмена

Одна из главных функций SPICE — общий буфер обмена между хостом и гостевой системой.

Он работает при:

  • установленном spice-vdagent;
  • запущенном агенте;
  • корректной конфигурации VM;
  • активной SPICE-сессии.

Проверка:

systemctl status spice-vdagentd

Если буфер обмена не работает:

sudo systemctl restart spice-vdagentd

Затем перезайдите в пользовательскую сессию.


8. Автоматическое изменение разрешения экрана

SPICE может автоматически подстраивать разрешение гостевой системы под размер окна клиента.

Для этого нужны:

  • spice-vdagent;
  • поддерживаемый видеодрайвер;
  • активная SPICE-сессия.

Если разрешение не меняется:

1. Проверьте агент:

   systemctl status spice-vdagentd

2. Проверьте видео:

   lspci -k | grep -A 3 -i display

3. Перезапустите агент:

   sudo systemctl restart spice-vdagentd

  1. Перелогиньтесь в графической сессии.

9. SPICE в гостевой Windows

9.1. Что нужно установить

Для Windows-гостя обычно устанавливаются:

  1. SPICE Guest Tools
  2. Драйверы QXL или virtio-gpu
  3. Драйверы virtio-win, если используются virtio-устройства

Обычно всё это входит в состав:

virtio-win guest tools

или:

SPICE Guest Tools

9.2. Где взять

Часто используется ISO-образ:

virtio-win.iso

Он содержит драйверы для:

  • сети;
  • дисков;
  • QXL;
  • virtio-gpu;
  • SPICE guest tools;
  • balloon;
  • других virtio-компонентов.

9.3. Установка в Windows

Обычно процесс такой:

  1. Подключите ISO с драйверами к виртуальной машине.
  2. Откройте диск в Windows.
3. Запустите установщик:
   virtio-win-guest-tools.exe

или аналогичный.


  1. Установите все предлагаемые компоненты.
  2. Перезагрузите Windows.

9.4. Проверка устройств

Откройте:

Диспетчер устройств

Проверьте разделы:

  • Видеоадаптеры;
  • Устройства системы;
  • Сетевые адаптеры;
  • Контроллеры USB.

Не должно быть неизвестных устройств с жёлтым восклицательным знаком.


Для SPICE важны:

QXL graphics device

или:

VirtIO GPU

а также:

SPICE vdagent

9.5. Службы SPICE в Windows

Откройте службы:

services.msc

Найдите службы, связанные с:

SPICE

Например:

Spice agent

или:

spice-vdagent

Убедитесь, что служба запущена и тип запуска установлен:

Автоматически

10. USB-проброс через SPICE

SPICE поддерживает проброс USB-устройств с клиентской машины в виртуальную машину.

Это удобно для:

  • флешек;
  • токенов;
  • смарт-карт;
  • принтеров;
  • некоторых лицензионных ключей.

10.1. Что нужно в гостевой Linux

Для USB-проброса обычно нужны:

usbutils

Проверка:

lsusb

Установите при необходимости:

sudo apt install usbutils -y

или:

sudo dnf install usbutils -y

10.2. Что нужно в гостевой Windows

Нужны установленные драйверы из virtio-win или SPICE Guest Tools. После подключения USB через клиент SPICE устройство должно появиться в Windows.


10.3. Важное замечание

USB-проброс зависит не только от гостевой системы, но и от:

  • настроек виртуальной машины;
  • клиента SPICE;
  • прав пользователя на хосте;
  • политик безопасности;
  • используемого USB-контроллера.

11. Общий доступ к файлам через SPICE

SPICE может предоставлять доступ к файлам через WebDAV.

За это отвечает компонент:

spice-webdavd

11.1. Установка spice-webdavd в Linux

Debian/Ubuntu:

sudo apt install spice-webdavd -y

Fedora/RHEL:

sudo dnf install spice-webdavd -y

Arch:

sudo pacman -S spice-webdavd

11.2. Запуск службы

sudo systemctl enable spice-webdavd
sudo systemctl start spice-webdavd

Проверка:

systemctl status spice-webdavd

11.3. Как это работает

Если хост и клиент поддерживают SPICE WebDAV, в гостевой системе может появиться сетевой ресурс, через который можно обмениваться файлами. В Linux его можно монтировать вручную или через файловый менеджер.

Пример адреса:

http://localhost:9843/

или:

davs://localhost:9843/

Конкретный адрес зависит от реализации клиента и настроек хоста.


12. Звук в SPICE

SPICE поддерживает передачу звука.

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

  • PulseAudio;
  • PipeWire;
  • ALSA.

12.1. Проверка звуковых устройств

aplay -l

или:

pactl list short sinks

для PipeWire/PulseAudio:

wpctl status

12.2. Если звука нет

Проверьте, какое звуковое устройство назначено виртуальной машине.

Обычно для SPICE используют:

ich6

или:

ac97

или:

hda

Внутри гостя проверьте:

lspci | grep -i audio

Пример:

Intel Corporation 82801I HD Audio Controller

13. Рекомендуемая конфигурация виртуальной машины для SPICE

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

Рекомендуется:

Видео

QXL

или:

virtio-gpu

Дисплей

SPICE

Каналы SPICE

Желательно наличие каналов:

com.redhat.spice.0

или аналогичных, в зависимости от платформы.


USB

Если нужен USB-проброс:

USB redirection

Звук

Enable audio

14. Типичные проблемы и их решение


14.1. Не работает буфер обмена

Симптомы

Копирование на хосте не вставляется в госте, и наоборот.


Проверка

systemctl status spice-vdagentd

Решение

sudo systemctl restart spice-vdagentd

Затем:

  • выйдите из графической сессии;
  • зайдите снова;
  • переподключитесь по SPICE.

14.2. Разрешение экрана не подстраивается

Проверка

systemctl status spice-vdagentd
lspci | grep -i vga

Возможные причины

  • не установлен spice-vdagent;
  • используется неподходящий видеоадаптер;
  • агент не запущен;
  • графическая сессия не поддерживает изменение разрешения.

Решение

sudo apt install spice-vdagent -y
sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd

или:

sudo dnf install spice-vdagent -y
sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd

14.3. SPICE не видит QXL или virtio-gpu

Проверка

lspci | grep -i vga

или:

lspci | grep -i display

Решение

Если устройство отсутствует, значит виртуальная машина настроена без QXL/virtio-gpu. Нужно менять тип видеоадаптера в настройках VM на хосте.


14.4. В Windows нет SPICE-агента

Симптомы

  • не работает буфер обмена;
  • нет автоматического разрешения;
  • в диспетчере устройств есть неизвестные устройства.

Решение

Установить:

virtio-win guest tools

или:

SPICE Guest Tools

Затем перезагрузить Windows.


14.5. USB-устройство не пробрасывается

Проверка в Linux

lsusb

Возможные причины

  • USB-проброс не разрешён на хосте;
  • нет прав на устройство;
  • клиент SPICE не поддерживает проброс;
  • устройство уже занято другой VM;
  • отсутствует поддержка USB redirection.

Что делать

  1. Проверить настройки VM.
  2. Проверить клиент SPICE.
  3. Проверить права пользователя на хосте.
  4. Попробовать другой USB-порт.
  5. Проверить устройство командой lsusb после подключения.

14.6. Нет звука

Проверка

aplay -l
pactl list short sinks

или:

wpctl status

Решение

  1. Проверить звуковое устройство VM.
  2. Убедиться, что звук не отключён в микшере гостя.
  3. Проверить, что клиент SPICE получает аудиопоток.
  4. Перезапустить аудиослужбы.

Для PipeWire:

systemctl --user restart pipewire
systemctl --user restart pipewire-pulse

Для PulseAudio:

pulseaudio -k
pulseaudio --start

15. Диагностика SPICE в гостевой Linux

15.1. Проверка служб

systemctl status spice-vdagentd
systemctl status spice-webdavd

15.2. Проверка процессов

ps aux | grep spice

15.3. Проверка видео

lspci | grep -i vga
lspci | grep -i display

15.4. Проверка драйверов

lspci -k | grep -A 3 -i vga
lspci -k | grep -A 3 -i display

15.5. Проверка звука

aplay -l
pactl list short sinks
wpctl status

15.6. Проверка USB

lsusb

15.7. Логи

Полезные журналы:

journalctl -u spice-vdagentd
journalctl -u spice-webdavd
journalctl -b

Для графической сессии:

journalctl --user

16. Пример минимальной настройки Linux-гостя для SPICE

Debian/Ubuntu

sudo apt update
sudo apt upgrade -y
sudo apt install spice-vdagent spice-webdavd -y
sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd
sudo systemctl enable spice-webdavd
sudo systemctl start spice-webdavd

Fedora/RHEL

sudo dnf upgrade -y
sudo dnf install spice-vdagent spice-webdavd -y
sudo systemctl enable spice-vdagentd
sudo systemctl start spice-vdagentd
sudo systemctl enable spice-webdavd
sudo systemctl start spice-webdavd

17. Пример минимальной настройки Windows-гостя для SPICE

1. Подключить ISO с драйверами, например:

virtio-win.iso

  1. Открыть диск в проводнике.

3. Запустить:

virtio-win-guest-tools.exe

  1. Установить все компоненты.

  1. Перезагрузить Windows.

6. Проверить:

Диспетчер устройств

7. Проверить службы:

services.msc

  1. Убедиться, что службы SPICE запущены.

18. Безопасность SPICE

SPICE может работать как локальный канал между хостом и клиентом, но при сетевом использовании нужно учитывать безопасность.


18.1. Риски

Если SPICE открыт в сеть без защиты, возможны:

  • перехват трафика;
  • несанкционированный доступ к консоли VM;
  • утечка данных буфера обмена;
  • компрометация ввода.

18.2. Рекомендации

  • Не открывайте SPICE напрямую в интернет.
  • Используйте TLS, если платформа это поддерживает.
  • Используйте SSH-туннель.
  • Ограничивайте доступ firewall.
  • Используйте аутентификацию, если она доступна.

Пример SSH-туннеля:

ssh -L 5900:localhost:5900 user@host

Затем клиент SPICE подключается к:

localhost:5900

19. SPICE и Wayland

В современных Linux-дистрибутивах может использоваться Wayland. SPICE-агент обычно работает и в Wayland-сессиях, но некоторые функции могут вести себя иначе.

Проверить тип сессии:

echo $XDG_SESSION_TYPE

Возможные ответы:

x11

или:

wayland

Если возникают проблемы с буфером обмена или разрешением, можно временно протестировать X11-сессию.


20. SPICE и GNOME / KDE / XFCE

SPICE обычно хорошо работает в популярных окружениях рабочего стола.


GNOME

Обычно всё работает из коробки после установки:

spice-vdagent

KDE Plasma

Также обычно поддерживается.

Если буфер обмена не работает, проверьте:

  • spice-vdagentd;
  • настройки буфера обмена KDE;
  • тип сессии: X11 или Wayland.

XFCE

Обычно работает стабильно, особенно в X11-сессии.


21. Полезные команды

Действие Команда
Проверить VGA lspci | grep -i vga
Проверить display lspci | grep -i display
Проверить драйвер lspci -k | grep -A 3 -i display
Проверить USB lsusb
Проверить звук aplay -l
Статус spice-vdagentd systemctl status spice-vdagentd
Перезапуск spice-vdagentd sudo systemctl restart spice-vdagentd
Логи spice-vdagentd journalctl -u spice-vdagentd
Проверить процессы SPICE ps aux | grep spice

22. Итоговая оптимальная конфигурация гостя

Для Linux

Установить:

spice-vdagent
spice-webdavd

Запустить:

sudo systemctl enable --now spice-vdagentd
sudo systemctl enable --now spice-webdavd

Убедиться, что видео:

QXL

или:

virtio-gpu

Для Windows

Установить:

SPICE Guest Tools

или:

virtio-win guest tools

Проверить:

  • Диспетчер устройств;
  • службы SPICE;
  • наличие QXL/virtio-gpu;
  • автоматическое разрешение;
  • буфер обмена.

23. Краткий чек-лист

Если SPICE в гостевой системе не работает полноценно, проверьте по порядку:

  1. Виртуальная машина использует SPICE-дисплей.
  2. Видеоадаптер — QXL или virtio-gpu.
  3. В Linux установлен spice-vdagent.
  4. Служба spice-vdagentd запущена.
  5. В Windows установлены SPICE Guest Tools / virtio-win drivers.
  6. В диспетчере устройств Windows нет неизвестных устройств.
  7. Буфер обмена работает.
  8. Разрешение экрана меняется при изменении окна клиента.
  9. При необходимости установлен spice-webdavd.
  10. USB-проброс разрешён и поддерживается клиентом.
  11. Звук включён в VM и в гостевой ОС.
  12. Нет ошибок в логах.

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (5)(531)(30)

Комментарии

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