首页/云/云平台与虚拟化速查/qemu-guest-agent 与主机内交互
虚拟化操作94 条

qemu-guest-agent 与主机内交互

qemu-guest-agent 在 guest 内运行,通过 virtio-serial 通道与宿主交换信息:支持查询接口地址、冻结文件系统、走代理关机与执行命令,是自动化运维的常用通道。

云平台与虚拟化速查云更新于 2026-10-13

是什么

qemu-guest-agent 是运行在 KVM/QEMU 虚机内部的辅助守护进程,宿主侧的 libvirt 通过 virtio-serial 通道(设备名通常为 org.qemu.guest_agent.0)向它下发指令、读取信息。没有 agent 时,宿主要关机只能发 ACPI 信号,也拿不到 guest 内部的网卡地址与文件系统状态;装上 agent 后,查地址、冻结文件系统、代理关机、执行受限命令都能从宿主侧统一发起。VMware 平台上承担同类角色的是 open-vm-tools。

基本信息

运行位置guest 内部常驻,以 root 权限运行
通信通道virtio-serial 通道,设备名 org.qemu.guest_agent.0
宿主调用virsh qemu-agent-command 域 加一段 JSON 指令
软件包Debian/Ubuntu 与 RHEL 系均为 qemu-guest-agent
服务管理systemd 单元 qemu-guest-agent,装完需启动并设为开机自启

典型使用场景

  • 虚机不走 DHCP 或需要精确地址时,用 virsh domifaddr --source agent 从 guest 内部取回真实 IP
  • 做静默快照前冻结文件系统,让磁盘状态与内存状态对齐,备份可直接挂载使用
  • 从宿主发关机、重启、改口令等指令,走 agent 通路比 ACPI 信号更可控
  • 使用镜像批量交付时重置 guest 内账号口令,避免模板中的旧凭据流出
  • 采集 guest 内操作系统类型与版本,用于资产盘点与合规核查
  • OpenStack、Proxmox 等平台初始化实例后依赖 agent 回传执行结果

常用调用

常用调用
virsh domifaddr vm1 --source agent        # 从 guest 内部取网卡地址
virsh qemu-agent-command vm1 '{"execute":"guest-info"}'  # 查询 agent 能力
virsh domfsfreeze vm1                     # 冻结文件系统,准备做静默快照
# 此处执行卷快照或备份
virsh domfsthaw vm1                       # 解冻,恢复 guest 写盘
virsh domifaddr vm1 --source lease        # agent 不可用时改读 DHCP 租约

输出逐列读法

列含义判读要点
Name虚拟网卡接口名,如 vnet0应与 virsh domiflist 的输出一致
MAC addressguest 内网卡 MAC同一虚机多条记录属正常
Protocolipv4 或 ipv6只出现 ipv6 说明没取到 IPv4 地址
Address接口地址与掩码长度为空或整表无输出,说明 agent 未生效
agent 未安装或服务未启动时,--source agent 会报 guest agent is not responding;此时退回 --source lease 读 DHCP 租约,前提是 guest 确实通过 DHCP 获得地址,静态配置的虚机拿不到结果。
domfsfreeze 冻结期间 guest 内所有写操作被阻塞,必须与 domfsthaw 成对使用;中途快照失败要人工解冻,否则 guest 会长时间挂死。

易错点

  • 只装了软件包没启动服务,宿主侧依旧报 agent 无响应,通道形同不存在
  • 冻结文件系统后忘记解冻,guest 内所有进程写盘全部阻塞
  • 用 agent 执行关机,但 guest 内 agent 版本过旧不支持该指令,退化成 ACPI 关机
  • 把 agent 通道当成安全边界:它具备在 guest 内执行命令的能力,宿主侧权限必须收敛

数据来源与参考

  • libvirt 文档:QEMU guest agent
  • QEMU 文档:guest agent 协议
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌