Включаем xterm.js на Debian (Proxmox) для удаленного доступа к консоли

Поделиться

Это руководство поможет вам настроить доступ к консоли вашей виртуальной машины Debian через xterm.js в Proxmox. Мы будем использовать последовательный порт для этой цели.


🧐 Предварительные требования

  • Установленная виртуальная машина с Debian на Proxmox.
  • Доступ к командной строке виртуальной машины (например, через SSH или VNC console).
  • Доступ к веб-интерфейсу Proxmox.

⚙️ Пошаговая инструкция

Шаг 1: Настройка сервиса serial-getty

Сервис serial-getty отвечает за предоставление оболочки (shell) через последовательный порт.

Выполните следующие команды внутри вашей виртуальной машины Linux:

# Включаем автозапуск сервиса serial-getty для ttyS0 при загрузке системы
sudo systemctl enable serial-getty@ttyS0.service

# Немедленно запускаем сервис, чтобы проверить его работу
sudo systemctl start serial-getty@ttyS0.service
Шаг 2: Проверка статуса сервиса
Убедимся, что сервис serial-getty@ttyS0.service запущен и работает.

bash

sudo systemctl status serial-getty@ttyS0.service
💡 Примечание: На данном этапе, если вы еще не настроили GRUB, статус сервиса может показывать ошибки или предупреждения. Это ожидаемо и будет исправлено на последующих шагах.

Шаг 3: Изменение настроек GRUB
Нам необходимо указать ядру Linux выводить консоль не только на стандартный экран, но и на последовательный порт.

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

bash

sudo nano /etc/default/grub
Найдите строку, которая начинается с GRUB_CMDLINE_LINUX_DEFAULT. Она может выглядеть примерно так:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

или

GRUB_CMDLINE_LINUX_DEFAULT="quiet"
Измените эту строку, добавив параметры для последовательной консоли. Обновленная строка должна выглядеть следующим образом:


GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0,115200n8"
console=tty1: Сохраняет вывод на стандартный виртуальный терминал (если используется).
console=ttyS0,115200n8: Указывает ядру выводить консоль на последовательный порт ttyS0 со следующими параметрами:
115200: Скорость передачи данных (бод).
n8: 8 бит данных, без контроля четности (None), 1 стоп-бит.
Сохраните изменения:

Нажмите Ctrl + X.
Нажмите Y для подтверждения сохранения.
Нажмите Enter для подтверждения имени файла.
Шаг 4: Обновление конфигурации GRUB
После внесения изменений в файл /etc/default/grub необходимо перегенерировать конфигурационные файлы GRUB:

bash

sudo update-grub
Шаг 5: Выключение виртуальной машины
Чтобы изменения в GRUB вступили в силу, виртуальную машину необходимо перезагрузить. Корректно выключим её:

bash

sudo poweroff
Шаг 6: Настройка последовательного порта в Proxmox
Теперь переходим в веб-интерфейс Proxmox VE для добавления аппаратного последовательного порта к вашей виртуальной машине.

В левой панели Proxmox выберите вашу виртуальную машину.
Перейдите на вкладку Hardware.
Нажмите кнопку Add (Добавить).
Выберите Serial Port (Последовательный порт) из выпадающего списка.
В открывшемся окне убедитесь, что Port установлен на 0 (это соответствует ttyS0).
Нажмите кнопку Add.
Шаг 7: Включение ВМ и проверка работы сервиса
Включите вашу виртуальную машину через Proxmox. После полной загрузки операционной системы, проверьте статус serial-getty@ttyS0.service еще раз:

bash

sudo systemctl status serial-getty@ttyS0.service
Теперь вы должны увидеть:

Status: active (running)
Отсутствие сообщений об ошибках.
Это означает, что сервис успешно слушает последовательный порт, и ядро настроено на вывод консоли через него.

Шаг 8: Запуск xterm.js в Proxmox
Если предыдущие шаги выполнены успешно, вы готовы использовать xterm.js для доступа к консоли.

Откройте веб-консоль вашей виртуальной машины в Proxmox.
В интерфейсе консоли найдите и выберите вкладку xterm.js.
Откроется интерактивный терминал, подключенный напрямую к консоли вашей виртуальной машины. Вы сможете вводить команды, как если бы вы сидели за физической консолью.
ℹ️ Ключевая информация
Последовательный порт: ttyS0
Скорость (Baud Rate): 115200
Параметры порта: 8N1 (8 бит данных, отсутствие контроля четности, 1 стоп-бит)
🎉 Поздравляем! Теперь у вас есть доступ к консоли вашей виртуальной машины через xterm.js в Proxmox, что может быть очень полезно для отладки или доступа в ситуациях, когда сетевое подключение недоступно. “