如何确定qemu中客户操作系统的IP地址?

如何确定qemu中客户操作系统的IP地址?

在 qemu 中启动 Windows XP 后,它会从 DHCP 服务器获取分配的 IP。我的问题是 - 如何确定 Windows XP 分配的 IP,以便我可以连接到 Windows XP?

以下是有关我的设置的更多详细信息:

dnsmasq在tun0接口上运行。我已将其设置为提供 10.10.10.0/24 范围内的 IP。我用于-net tunqemu。我运行多个 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(半虚拟)驱动程序和来宾代理服务,两者均以 virtio 驱动程序 ISO 映像的形式提供。您可以从 Fedora VirtIO Windows 驱动程序项目获取它;在 Linux 操作系统中,它可以在所有主要发行版的发行版存储库中找到,或者您可以从 Qemu 源代码自行构建。

来宾代理是主机(虚拟机管理程序)和 VM 之间通信的强大方式,其他虚拟化技术也提供类似集成功能的代理(例如 VMWare Additions、VirtualBox Additions)。使用 Qemu Guest Agent,您不仅可以获取有关 guest 虚拟机的各种信息,还可以在其中运行一些命令并进行设置。 Proxmox VE 基于 Debian 和 Qemu,还使用其来宾代理在进行备份和其他企业级功能之前使磁盘冻结。

答案2

dnsmasq 的租约列表存储在配置选项中指定的文件中dhcp-leasefile。对于上游版本,默认位置是/var/lib/misc/dnsmasq.leases

答案3

如果您启动它,您就知道主机名。这样你就可以查询你的(当然是正确配置的)DNS。毕竟是 DNSmasq。

相关内容