SSH в ОС Gnome Boxes

Запустить vncserver вручную:

x0vncserver -PasswordFile=~/.vnc/passwd
0
02.01.2021, 20:38
1 ответ

Что доступно с ящиками GNOME

Если дважды -щелкнуть файл Open Virtualization Format, GNOME Boxes импортирует его автоматически.

GNOME Boxes не предоставляет гостям доступ к SSH. Предполагается, что на гостевой системе установлены гостевые дополнения SPICE , чтобы иметь возможность:

  • для копирования и вставки текста с общим буфером обмена между хостом и гостем и
  • для перетаскивания файлов в гостевую систему.

Этот подход должен быть интуитивно понятным для неискушенных пользователей, на которых GNOME нацелен с помощью этого приложения:

While virt-manager does a very good job as a virtual machine management software, it's very much tailored for system administration and virtual machines. Boxes, on the other hand, is targeted towards a typical desktop end-user who wants either a very safe and easy way to try out new operating systems or new (potentially unstable) versions of her/his favorite operating system(s), or needs to connect to a remote machine (home-office connection being a typical use-case). For this reason, Boxes does not provide many of the advanced options to tweak virtual machines provided by virt-manager. Instead, Boxes focuses on getting things working out of the box with very little input from user.

That said, Boxes shares a lot of code with virt-manager project, mainly in the form of libvirt, libosinfo and qemu.

Для справки: существует неактивное предложение трехлетней --давности по реализации переадресации портов в ящиках.


Использование различных инструментов

Если вам нужно SSH для ваших гостей, вы можете использовать правильный инструмент для настройки вашей задачи и прибегнуть к virt-manager. Как правило, это можно сделать, настроив либо " виртуальную сеть " (для хостов с динамическими или беспроводными интерфейсами ), либо " мост в локальную сеть " (для хосты со статическими проводными интерфейсами ). С другой стороны, Boxes настраивает гостей с сетевым режимом user, который использует стек SLiRP пользовательского пространства . Вы можете использовать virt-manager, чтобы изменить существующую настройку и продолжить использовать своих гостей в ящиках после этого, если хотите. Я еще не делал этого сам, поэтому, если вы решите использовать virt-manager, вам понадобится другое руководство.


Переадресация портов

Другой подход заключается в том, чтобы указать QEMU переадресовывать порт на хосте на порт на гостевой системе.Вы не можете изменить файл конфигурации гостя с помощью текстового редактора, потому что изменения будут проигнорированы и перезаписаны. Вы можете изменить его с помощью visrh, который доступен в пакете libvirt-clients(, по крайней мере, в Debian ). Узнать имя домена можно во второй строке «Журнала устранения неполадок», доступного на вкладке «Система» в гостевых «Свойствах» в Ящиках. Кроме того, вы можете проверить XML-файлы в ~/.config/libvirt/qemu. Например, в моей установке имя домена, связанного с установленной гостевой машиной, «ящики -неизвестны». Чтобы отредактировать конфигурацию этой машины, я ввожу:

virsh edit boxes-unknown

Существующая конфигурация сети для гостя в моей установке:

    <interface type='user'>
      <mac address='52:54:00:3d:69:49'/>
      <model type='rtl8139'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

К сожалению, вы не можете просто изменить XML, чтобы добавить только перенаправление портов с хоста на гостя. Эта функция не реализована в формате XML домена , используемом libvirt. Электронное письмо от 2013 года показывает, что предложение по этой функции было отклонено. Поэтому вместо этого нам нужно предоставить соответствующие аргументы для передачи в QEMU при запуске гостя. Мы не можем изменить существующий сетевой интерфейс, поэтому мы просто удаляем часть XML, описывающую его, чтобы предотвратить его создание. Вместо этого мы должны реплицировать его в аргументах, которые мы хотим передать в QEMU.

Согласно «Журналу устранения неполадок», в моей настройке указанная выше конфигурация сети соответствует следующим аргументам:

-netdev user,id=hostnet0 \
-device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:3d:69:49,bus=pci.0,addr=0x3 \

Вы можете проверить значение аргументов в man qemu-system-x86_64.

Мы не хотим копировать шину и адрес, потому что автоматическая конфигурация не будет учитывать наши пользовательские аргументы QEMU. Это приводит к случайным конфликтам при распределении адресов, что препятствует запуску гостя. Вместо этого мы просто позволяем ему автоматически выделяться нашему пользовательскому сетевому интерфейсу.

Запомните имя устройства. Например, если я не укажу rtl8139,по-видимому, вместо этого по умолчанию настроено e1000.

Вам необходимо изменить тег <domain type='kvm'>, чтобы включить пространство имен XML для элементов командной строки QEMU:

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

После этого вы можете добавить аргументы командной строки QEMU в конец прямо перед закрывающим тегом </domain>. В приведенном ниже примере я добавляю переадресацию портов, чтобы иметь возможность ssh localhost -p 2222с хоста и иметь доступ к веб-серверу по адресу http://localhost:8080из браузера на хосте. Возможно, вам потребуется изменить этот пример в соответствии с вашими настройками и вашими предпочтениями. При необходимости синтаксис аргумента hostfwdможно прочитать в man qemu-system-x86_64.

  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='rtl8139,netdev=hostnet0'/>
    <qemu:arg value='-netdev'/>
    <qemu:arg value='user,id=hostnet0,hostfwd=tcp::2222-:22,hostfwd=tcp::8080-:80'/>
  </qemu:commandline>

Соответствующие аргументы QEMU::

-device rtl8139,netdev=hostnet0 \
-netdev user,id=hostnet0,hostfwd=tcp::2222-:22,hostfwd=tcp::8080-:80

Нетрудно было сделать из этого приведенный выше XML, но вы также можете использовать virsh domxml-from-native qemu-argv, чтобы он был создан для вас.

Кажется, это все, что нам нужно для перенаправления портов согласно QEMU wiki .

Аналогичный подход можно использовать и с гостями в virt-manager:https://unix.stackexchange.com/a/519067/423679

Не пропускать проверку XML при сохранении файла, если virshсообщает об ошибках. Попробуйте сначала исправить синтаксис. Не забудьте сохранить резервные копии конфигурационных файлов на всякий случай.

0
12.05.2021, 05:24

Теги

Похожие вопросы