Запустить vncserver вручную:
x0vncserver -PasswordFile=~/.vnc/passwd
Что доступно с ящиками 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
сообщает об ошибках. Попробуйте сначала исправить синтаксис. Не забудьте сохранить резервные копии конфигурационных файлов на всякий случай.