Назад | Перейти на главную страницу

Как мне подключиться к моей libvirt / qemu / guest? (без IP-адреса)

Я унаследовал администрирование надежного сервера ubuntu с несколькими виртуальными серверами, а также ubuntu с использованием libvirt и qemu. У меня проблема: я не могу подключиться к этим виртуальным серверам / гостям.

Пароль root для физического ящика был неизвестен, поэтому мне пришлось восстановить его (что могло привести к поломке) с помощью Knoppix Live CD (поскольку он обрабатывает как LVM2, так и Raided диски / образы), а также выполнить chroot и изменить пароль. С тех пор (совпадение?) У гостей, похоже, нет IP-адресов.

Когда я смотрю на вывод ifconfig vnet0, IP-адрес не назначен, а счетчик RX / TX равен 0. Это кажется ошибкой (возможно, виртуальный сетевой мост неисправен или гости не работают).

Virbr0 имеет IP-адрес, и счетчик TX увеличивается, когда я пытаюсь проверить связь с IP-адресом, который должен быть назначен vnet0. Итак, виртуальная сеть выглядит нормально.

Когда я делаю 'virsh list --all', я вижу, что запущены гости. Я также вижу процессы с символом 'ps -eaf | grep libvirt '. Так что гости вроде бы есть. (Но они бегут?)

Команда shutdown не выключает гостей. Однако это может быть действительным (без apcid). Операции «уничтожить» и «запустить» работают, но опять же не уверен, достаточно ли запущены гости, чтобы добраться до точки инициализации сети или нет.

Я попытался «консоль GuestMachine» из virsh, но это зависло, думаю, мне нужно запустить getty на гостевой машине.

Вывод команды ps также показывает «-vnc 127.0.0.1:9». Однако все серверы, включая физический, не имеют графического интерфейса пользователя / X. Я думаю, что VNC - это только графический интерфейс, и этот маршрут, возможно, еще один тупик.

В '/var/log/libvirt/qemu/GuestMachine.log' нет ничего примечательного. Я вижу «выключение», «запуск», параметры командной строки и «устройство char перенаправлено на / dev / pts / 13 (метка charserial0)».

Это мое первое введение в libvirt и qemu, и после небольшого покопания я не уверен, есть ли у меня запущенные гости или как подключиться к ним (без параметра IPAddress / ssh).

Как только я смогу подключиться к гостям, я уверен, что смогу исправить проблему с IP-адресом, но без IP-адреса я не могу подключиться к гостям.

В этой ситуации есть способ подключиться к гостям?

vnc не ограничивается представлением графического интерфейса пользователя; он также может представлять графическое представление приглашения оболочки, как вы ожидаете увидеть в текстовой консоли автономного окна (например, ALT-F2).

Например, вот я указываю программе просмотра vnc на порт VNC одного из моих локально размещенных образов QEMU:

Как вы видите, это консоль без графического интерфейса, но я все равно мог бы с радостью войти в нее, даже если бы у нее не было IP-адреса (а на самом деле его нет). Направьте свою программу просмотра VNC на порт 5909 (добавьте 5900 к аргументу -vnc 127.0.0.1:) и все должно быть в порядке.

Как заявил MadHatter, ответ заключался в использовании VNC. Однако из-за отсутствия X на сервере нам нужно использовать ssh для туннелирования с гостями.

ssh -v L 5901:127.0.0.1:5901 user@GuestMachine

Когда вы подключаетесь (на машине, где вы запускаете ssh) к порту 5901, он проходит через туннель на GuestMachine и подключается к порту 5901 по шлейфу (на GuestMachine).

-

Однако для меня это не сработало. OSX, построенная на VNC, зависла, а RealVNC, работающая на OSX, вышла некрасиво. Здесь мы копаем глубже, берем Wireshark и начинаем смотреть на пакеты.

Я не был уверен, что OSX делает что-то глупое с брандмауэром или какие-то другие умные манипуляции, поэтому я действительно сделал ssh в Linux. Тогда была моя полная настройка.

OSX(with VNC) ---Linux(with ssh)======Server(no GUI)--Guest(qemu)

В Linux я отследил сетевые пакеты, отфильтровал IP-адрес OSX или vnc, чтобы увидеть пакеты vnc.

VNC Протокол RFB был использован, чтобы увидеть, что VNC вышел на этапе безопасности при использовании по умолчанию «Позвольте VNC Server выбирать» в VNC Viewer. Я изменил это на «Предпочитать выключено», и хотя визуально то же самое (выход без изящества), сетевых пакетов было больше.

Посмотрим внимательнее на сетевые пакеты. Когда сервер отправил «Параметры фреймбуфера сервера», а клиент отправил «Установленный клиентом формат пикселя» (а также «Установленные клиентом кодировки» и «запрос обновления клиентского буфера кадра», обе стороны выполнили FIN / ACK.

Глядя на эти пакеты, сервер запрашивал «флаг истинного цвета: истина», а у клиента это было ложно. Вернитесь к VNC Viewer в OSX, выбрав «Параметры ...», а затем «Эксперт», прокрутите вниз до ColorLevel и измените его с «pal8» на «полный».

После всего этого и я смог подключиться по VNC к гостю! Затем я мог видеть, что гость qemu застрял на экране GRUB. Причина отсутствия IP-адреса - застревание в загрузчике. (Но причина в другом ...)