Как определить IP-адрес гостевой операционной системы в QEMU?

Как определить IP-адрес гостевой операционной системы в QEMU?

После загрузки Windows XP в qemu он получает IP-адрес, назначенный DHCP-сервером. Мой вопрос - как определить IP-адрес, назначенный Windows XP, чтобы я мог подключиться к Windows XP?

Вот более подробная информация о моей установке:

Я работаю dnsmasqна интерфейсе tun0. Я настроил его на выдачу IP из диапазона 10.10.10.0/24. Я использую -net tunдля qemu. Я запускаю несколько гостевых установок Windows XP, поэтому я не могу использовать статические IP-адреса.

решение1

Общий подход заключается в том, чтобы иметьГостевой агент Qemuи выполнить определенную команду,гостевая-сеть-получить-взаимодействиядля получения его сетевых настроек.

Чтобы это работало, вам нужно сначала добавить сокет гостевого агента в конфигурацию виртуальной машины. Qemu нужно запустить примерно так:

qemu-system-x86_64 ... \
 -device virtio-serial,id=qga0 \
 -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \
 -chardev socket,path=base.qga,server=on,wait=off,id=qga0 \
...

Это создаст файл сокета base.qgaв текущем каталоге. Затем вы можете подключиться к этому сокету с помощью socat, но для удобства (редактирование командной строки и история) я бы предложил обернуть его в rlwrap:

rlwrap socat STDIO UNIX:base.qga

В гостевой ОС необходимо установить драйвер последовательного VirtIO (паравиртуальный) и службу гостевого агента, оба поставляются в виде образа ISO драйверов virtio. Вы можете получить его из проекта драйверов Fedora VirtIO для Windows; в ОС Linux он доступен в репозиториях дистрибутивов во всех основных дистрибутивах или вы можете собрать его самостоятельно из исходников Qemu.

Гостевой агент — это мощный способ связи между хостом (гипервизором) и виртуальной машиной, другие технологии виртуализации также предоставляют агенты для аналогичной функциональности интеграции (например, VMWare Additions, VirtualBox Additions). С помощью гостевого агента Qemu вы можете не только получать различную информацию о госте, но и выполнять некоторые команды и настраивать его внутри. Proxmox VE, основанный на Debian и Qemu, также использует своего гостевого агента для заморозки диска перед созданием резервных копий и для других функций корпоративного уровня.

решение2

Список аренд dnsmasq хранится в файле, указанном в параметре конфигурации dhcp-leasefile. Для версии upstream местоположение по умолчанию — /var/lib/misc/dnsmasq.leases.

решение3

Если вы его запустите, то узнаете имя хоста. С его помощью вы запрашиваете свой (конечно, правильно настроенный) DNS. Это же DNSmasq в конце концов.

Связанный контент