Содержание
Варианты консолей, доступные в Proxmox
Одной из вещей, которой редко уделяется внимание при начале использования Proxmox, является выбор консоли для доступа к виртуальным машинам. Как правило, пользователи просто нажимают кнопку Console в веб-интерфейсе и используют вариант, открывающийся по умолчанию. Для быстрого устранения неполадок это подходит отлично. Однако при ежедневном управлении большим количеством серверов Linux, виртуальных машин Windows, узлов Kubernetes, хостов Docker и десктопных операционных систем в Proxmox становится очевидно, что используемый метод консольного доступа имеет довольно большое значение. Эксперименты с xterm.js, noVNC и SPICE в домашней лаборатории позволяют изменить подход к доступу к виртуальным машинам. Рассмотрим какие есть варианты.
Сначала стоит рассмотреть варианты консолей, доступные в Proxmox по умолчанию. Proxmox предоставляет три различных варианта консоли в зависимости от типа запускаемой виртуальной машины или контейнера и поставленных задач. К ним относятся следующие:

На первый взгляд все они могут показаться одинаковыми, так как позволяют получить доступ к гостевой операционной системе из интерфейса Proxmox. Но на самом деле они предназначены для работы с разными ОС и выполнения разных задач. Понимание преимуществ каждой из них может помочь улучшить рабочий процесс, работу с Proxmox и доступ к виртуальным машинам и контейнерам в домашней лаборатории и производственных средах.
Зачем менять консоль по умолчанию?
Как упоминалось в начале, большинство пользователей даже не задумываются о свойствах или параметрах консоли, поскольку по умолчанию используется noVNC, который в большинстве случаев исправно работает как в средах Windows, так и в Linux. Однако переломный момент наступает после продолжительной работы внутри виртуальных машин Linux, на которых запущены такие компоненты, как Docker, Kubernetes, средства автоматизации и инфраструктурные сервисы.
Консоль noVNC в таких сценариях имеет несколько раздражающих особенностей:
- Отсутствует функция копирования и вставки
- Сочетания клавиш иногда работают некорректно
- Отзывчивость браузера может задерживаться
- Изменение размера окна консоли кажется неудобным
- Взаимодействие с оболочкой происходит не плавно
- Десктопные виртуальные машины иногда работают медленно
Ни одна из этих проблем не является критической. Но при выполнении задач на всех виртуальных машинах в течение всего дня это вызывает достаточное разочарование, чтобы начать искать лучший способ. При более серьезном рассмотрении и тестировании других вариантов консолей становится ясно, что Proxmox предоставляет лучшие альтернативы для определенных ОС и задач.
Почему xterm.js отлично подходит для серверов Linux
При работе с большим количеством виртуальных машин Linux и контейнеров LXC, отличным вариантом консоли является xterm.js. При использовании xterm.js вместо рендеринга полноценной графической консоли предоставляется доступ к терминалу прямо в браузере, и большим преимуществом является то, что функция копирования/вставки включена по умолчанию, что очень удобно.
Работа кажется более быстрой, легкой и отзывчивой по сравнению с noVNC при использовании систем с интерфейсом командной строки. Ниже показано подключение к виртуальной машине NixOS с использованием xterm.js:

Включение xterm.js для доступа к консоли Proxmox
Как это включить? Для этого требуется выполнить пару действий. Сначала необходимо добавить последовательный порт к виртуальной машине, к которой нужно получить подключение xterm.js.

Затем необходимо добавить настройки в конфигурационный файл NixOS для вывода на последовательный порт ttyS0:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Keep normal VGA/noVNC as the primary console boot.kernelParams = [ "console=tty0" ]; # Add Proxmox xterm.js as an additional serial login console systemd.services."getty@ttyS0" = { wantedBy = [ "getty.target" ]; serviceConfig = { ExecStart = [ "" "${pkgs.util-linux}/sbin/agetty -L 115200 ttyS0 vt220" ]; Restart = "always"; }; }; |
После изменения конфигурации следует запустить пересборку конфигурации, а затем перезагрузить систему:
|
1 2 3 |
nixos-rebuild boot reboot |
Для таких систем, как Debian или Ubuntu, необходимо отредактировать GRUB:
|
1 |
sudo nano /etc/default/grub |
Найти:
|
1 |
GRUB_CMDLINE_LINUX_DEFAULT="quiet" |
Изменить на:
|
1 |
GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty0" |
Ограничения xterm.js как варианта консоли Proxmox
xterm.js не идеален для любых задач или каждого консольного подключения. Самое большое ограничение при использовании xterm.js довольно очевидно. Он задуман исключительно как терминал. Если требуются графические установщики, взаимодействие с BIOS, десктопные операционные системы, устранение неполадок через графический интерфейс и т. д., xterm.js не подойдет в качестве нужного инструмента.
Кроме того, настройка не сложная, но требует выполнения нескольких шагов. Необходимо добавить последовательный порт, а затем также отредактировать конфигурацию, чтобы операционная система Linux выводила данные в последовательную консоль. Тем не менее, для администрирования Linux это один из наиболее предпочтительных вариантов из трех доступных.
Почему noVNC по-прежнему важен
Несмотря на упоминание использования xterm.js для машин Linux, означает ли это, что стандартный noVNC больше не имеет преимуществ? Нет, это не так. Он по-прежнему остается одним из самых универсально совместимых вариантов консоли, которые можно использовать в Proxmox. Консоль noVNC работает очень хорошо благодаря следующим характеристикам:

- Запускается полностью в браузере
- Не требует дополнительного программного обеспечения
- Работает практически на любом устройстве
- Поддерживает графические консоли
- Поддерживает устранение неполадок BIOS и процесса загрузки
Стоит признать, что это одна из причин, по которой данная консоль является вариантом по умолчанию при установке Proxmox. Она просто работает. При быстрой проверке виртуальной машины с другого компьютера, планшета или ноутбука, где не планируется установка дополнительных клиентов, noVNC остается невероятно полезным.
Главные недостатки noVNC
Хотя noVNC используется по умолчанию и, безусловно, является отличным универсальным вариантом, который работает практически со всем, по мере увеличения количества управляемых виртуальных машин становится заметно несколько раздражающих особенностей и проблем, связанных с noVNC.
Работа с буфером обмена реализована не лучшим образом. Можно включить буфер обмена как опцию VNC, как показано ниже. Следует обратить внимание на пару предупреждений, появляющихся при такой конфигурации.

Однако результаты возможности вставки из окна буфера обмена бывают неоднозначными. Предполагается, что это работает следующим образом: текст вставляется во всплывающую панель буфера обмена. Затем, после клика внутри виртуальной машины, должна работать стандартная комбинация CTRL+V. Для копирования из виртуальной машины достаточно выделить нужный текст в приложении виртуальной машины, после чего он должен появиться во всплывающей панели буфера обмена.

Раскладки клавиатуры также иногда ведут себя странно, особенно в следующих случаях:
- Функциональные клавиши
- Комбинации с клавишей Alt
- Сочетания клавиш для копирования и вставки
- Международные раскладки клавиатуры
Производительность также может варьироваться в зависимости от используемого браузера, задержки в сети, через которую осуществляется управление сервером (особенно через VPN), нагрузки на хост, аппаратного ускорения графики, гостевой операционной системы и т. д. При нерегулярном доступе эти проблемы не имеют большого значения. Однако при постоянном повседневном администрировании они могут стать источником трудностей.
Консоль SPICE
SPICE — это вариант консоли, который изначально часто игнорируется из-за недостаточного понимания принципов его работы. Тем не менее, при более близком знакомстве с консолью SPICE можно с уверенностью сказать, что она занимает достойное место в управлении виртуальными машинами и рабочих процессах. На первый взгляд может показаться, что это просто еще один протокол удаленной консоли, похожий на VNC. Но после тестирования с виртуальными машинами Windows и десктопными системами Linux становится понятно, что он способен обеспечить гораздо более плавную работу с рабочим столом.
Чтобы опция консоли SPICE стала доступной, необходимо изменить графическую карту на SPICE в настройках виртуальной машины. После этого вариант noVNC по-прежнему останется, но консоль SPICE станет доступной для использования.

После этого в выпадающем меню Console для виртуальной машины появится доступная консоль SPICE.

Как уже упоминалось ранее, в качестве обзора сценариев, где SPICE является надежным вариантом для использования в качестве консоли, стоит отметить следующие типы виртуальных машин, которые получат преимущества от его включения:
- Виртуальные рабочие столы Windows
- Десктопные виртуальные машины Linux
- Рабочие нагрузки, интенсивно использующие графический интерфейс
- Многомониторные среды
- Перенаправление звука
- Интеграция буфера обмена (требуется агент spice)
- Проброс USB
Отзывчивость консоли SPICE оказывается лучше, чем noVNC, в консольных сессиях с интенсивным использованием графического интерфейса. Особенно при работе по локальной сети SPICE работает более плавно.
SPICE Virt Viewer
Для просмотра «загруженных» файлов «vv» при выборе опции консоли SPICE необходимо установить программу Virt Viewer. Ее можно скачать, например, для Windows, с сайта Virtual Machine Manager. Затем достаточно просто выполнить установку:

Гостевые инструменты SPICE (SPICE guest tools)
Некоторым недостатком консоли SPICE является то, что для использования всех предоставляемых ею функций, таких как копирование и вставка, потребуется установить гостевые инструменты SPICE в клиентской операционной системе. Доступно для свободного скачивания. Ниже показан процесс установки гостевых инструментов SPICE в Windows.

Часто возникает вопрос: если установлен агент QEMU, включает ли это автоматически гостевые инструменты SPICE? Нет, это отдельные установки.
При переводе некоторых административных виртуальных машин Windows на SPICE вместо noVNC пользовательский опыт взаимодействия с виртуальной машиной сразу же улучшается. Движения мыши становятся более плавными. Взаимодействие с рабочим столом становится более отзывчивым. Операции с буфером обмена работают лучше.

Недостатки использования консоли SPICE
Как уже можно было заметить, недостатком использования консоли SPICE является меньшее удобство. Использовать SPICE не так просто, как noVNC. Нельзя просто кликнуть по выпадающему меню консоли, выбрать SPICE и сразу начать работу.
В отличие от noVNC, для SPICE требуются:
- Клиентское приложение (virt viewer)
- Дополнительная настройка (изменение параметров дисплея в виртуальной машине)
- Загрузка файла конфигурации SPICE (это файл формата «vv», который открывается через virt viewer)
- Гостевые инструменты SPICE в некоторых операционных системах (необходимо для таких функций, как копирование и вставка)
Дополнительная настройка означает, что этот вариант не идеален или даже невозможен для разового быстрого доступа. Это должна быть целенаправленная конфигурация, настроенная для конкретной виртуальной машины. Для быстрого устранения неполадок через браузер noVNC по-прежнему проще. Но для регулярно используемых систем, особенно для рабочих нагрузок в виде полноценного рабочего стола, SPICE часто стоит дополнительных усилий.
Используемые варианты для различных рабочих нагрузок
Ниже приведена таблица сценариев использования различных консолей:
| Тип консоли | Для чего используется | Причина использования |
|---|---|---|
| xterm.js | Серверные ВМ Linux, контейнеры, узлы Kubernetes, хосты Docker, инфраструктурные устройства, системы с активным использованием интерфейса командной строки | Легковесность, отзывчивость и идеальная совместимость для повседневного администрирования через оболочку |
| noVNC | Широкий спектр задач, быстрое устранение неполадок, доступ к BIOS, восстановление загрузки, временный доступ к ВМ, доступ только через браузер, рабочие процессы, ориентированные на удобство | Универсальная доступность из браузера и отличный вариант в качестве резервной консоли |
| SPICE | Виртуальные машины Windows, десктопные ВМ Linux, приложения с тяжелым графическим интерфейсом, длительные десктопные сессии, системы, требующие интеграции буфера обмена или USB | Лучшая отзывчивость рабочего стола и функции интеграции по сравнению с noVNC |
Заключение
Как и многие, изначально для всех нужд доступа к консоли виртуальных машин использовалась стандартная консоль noVNC. Однако по мере углубления работы с Proxmox и тестирования функциональности каждого типа консоли выяснилось, что у каждого из них есть свои плюсы и минусы, которые стоит учитывать. У всех вариантов есть специфические сценарии использования, в которых они проявляют себя лучше всего. Важно проанализировать, какая консоль обычно используется в конкретной среде и сравнить полученные результаты с описанными выше.
Читайте про Свой умный дом локально:
🌐 Сайт
📱 Телеграм
📰 Дзен

