Включаем 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, что может быть очень полезно для отладки или доступа в ситуациях, когда сетевое подключение недоступно. “