首页/云/云平台与虚拟化速查/virsh 热插拔网卡
虚拟化操作94 条

virsh 热插拔网卡

attach-interface 给域添加网卡(桥接或 libvirt 网络),可用 --model virtio 指定高吞吐型号;拔出时需要按类型与 MAC 精确匹配。

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

virsh 热插拔网卡

virsh attach-interface 给运行中的域添加网卡,来源可以是桥接(--type bridge)或 libvirt 网络(--type network),用 --model virtio 指定高吞吐的网卡型号。detach-interface 拔出网卡时必须按类型与 MAC 精确匹配,所以动手前先把原网卡的标识记下来。

基本信息

添加网卡virsh attach-interface vm1 --type bridge --source br0 --model virtio --live --config
接入网络--type network --source default
拔出网卡virsh detach-interface vm1 --type network --mac <MAC地址>
核对命令virsh domiflist vm1
持久化加 --config 才会写入下次启动的定义
guest 侧要点新网卡进系统后还需要配置地址或由 DHCP 分配

典型使用场景

  • 给虚机增加第二块网卡,做管理面与业务面分离
  • 临时接一块网络用于抓包与验证
  • 调整网卡型号以提升吞吐
  • 排查网络问题时热挂一块网卡做对照
  • 自动化流程中按需增减网卡

添加并拔出网卡

添加并拔出网卡
virsh domiflist vm1                            # 先看现有网卡与 MAC
sudo virsh attach-interface vm1 --type network --source default --model virtio --live --config
virsh domiflist vm1                            # 确认新网卡已挂上
sudo virsh detach-interface vm1 --type network --mac 52:54:00:xx:xx:xx --live --config
virsh dumpxml vm1 | grep -A6 '<interface'      # 核对定义里的网卡配置

参数与注意点

参数含义注意点
--type bridge / network网卡来源类型detach 时必须与添加时保持一致
--source桥名或网络名写错会挂到错误的二层网络
--model网卡型号(如 virtio)老系统可能缺 virtio 驱动
--live / --config当前生效与写回定义只加 --live,重启后网卡就消失
热插拔成功不等于业务可用:guest 内部还要识别到新网卡并配置地址,多数系统需要触发一次网络服务重载,或重启网络栈才能拿到 DHCP 地址。用 ip -br addr 与 dmesg 能最快确认网卡是否被系统识别。
拔出网卡前先确认没有业务流量走它:在 guest 内看过路由与连接再执行 detach,避免把管理通道一起拔掉,导致再也连不上。

易错点

  • MAC 抄错导致 detach 匹配失败:从 domiflist 原样复制
  • 多网卡引用同名桥时通信异常:核对桥接口与端口配置
  • 只加 --live 忘了 --config,重启后网卡与配置一起消失
  • guest 内没装 virtio 驱动,热挂的网卡在系统里根本看不到
  • 热挂网卡后没在 guest 内配地址,误以为插拔失败
  • 同一台虚机反复插拔网卡,guest 内残留旧网卡配置与路由,流量走错口
  • detach 时把承载管理连接的网卡拔掉,虚机直接失去可管理性
  • 网卡数量超出 guest 内核命名或驱动上限,新网卡根本无法启用
  • 拔卡后未清理 guest 内的持久网络配置,下次开机会因缺设备卡在启动
  • 变更后没同步记录到资产台账,下一轮排查仍按旧拓扑找问题

数据来源与参考

  • libvirt 文档:virsh attach-interface / detach-interface
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌