Подробный гайд: Протокол 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
- Перелогиньтесь в графической сессии.
9. SPICE в гостевой Windows
9.1. Что нужно установить
Для Windows-гостя обычно устанавливаются:
- SPICE Guest Tools
- Драйверы QXL или virtio-gpu
- Драйверы 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
Обычно процесс такой:
- Подключите ISO с драйверами к виртуальной машине.
- Откройте диск в Windows.
3. Запустите установщик:
virtio-win-guest-tools.exe
или аналогичный.
- Установите все предлагаемые компоненты.
- Перезагрузите 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.
Что делать
- Проверить настройки VM.
- Проверить клиент SPICE.
- Проверить права пользователя на хосте.
- Попробовать другой USB-порт.
- Проверить устройство командой
lsusbпосле подключения.
14.6. Нет звука
Проверка
aplay -l
pactl list short sinks
или:
wpctl status
Решение
- Проверить звуковое устройство VM.
- Убедиться, что звук не отключён в микшере гостя.
- Проверить, что клиент SPICE получает аудиопоток.
- Перезапустить аудиослужбы.
Для 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
- Открыть диск в проводнике.
3. Запустить:
virtio-win-guest-tools.exe
- Установить все компоненты.
- Перезагрузить Windows.
6. Проверить:
Диспетчер устройств
7. Проверить службы:
services.msc
- Убедиться, что службы 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 в гостевой системе не работает полноценно, проверьте по порядку:
- Виртуальная машина использует SPICE-дисплей.
- Видеоадаптер — QXL или virtio-gpu.
- В Linux установлен
spice-vdagent. - Служба
spice-vdagentdзапущена. - В Windows установлены SPICE Guest Tools / virtio-win drivers.
- В диспетчере устройств Windows нет неизвестных устройств.
- Буфер обмена работает.
- Разрешение экрана меняется при изменении окна клиента.
- При необходимости установлен
spice-webdavd. - USB-проброс разрешён и поддерживается клиентом.
- Звук включён в VM и в гостевой ОС.
- Нет ошибок в логах.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.