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,避免把管理通道一起拔掉,导致再也连不上。