收起左侧

虚拟机通过libvirt钩子实现使用无线网卡网络

0
回复
117
查看
[ 复制链接 ]

0

主题

1

回帖

0

牛值

江湖小虾

2025-8-9 12:53:44 显示全部楼层 阅读模式

思路

借助libvirt的qemu钩子, 在虚拟机启动时, 自动添加default网络, 实现虚拟机通过无线网卡上网

过程

系统版本 0.9.18, 虚拟机win10

激活default网络

sudo virsh net-list --all 查看default网络状态

sudo virsh net-autostart default 设置开机启动

确认虚拟机名称

命令行使用的虚拟机名称和飞牛管理界面显示的不一致

ll /etc/libvirt/qemu 查看已有虚拟机配置文件

查看每个xml文件内容,通过其中的title属性(即飞牛界面显示的名称)确认要配置的虚拟机配置文件,文件名即是虚拟机名称(如名称vzkknstu的虚拟机,对应的配置文件名为vzkknstu.xml)

配置钩子

sudo vi /etc/libvirt/hooks/qemu 创建钩子文件,内容:

#!/bin/bash

nohup sh /etc/libvirt/hooks/my-action.sh "$1" "$2" "$3" >> /var/log/libvirt/hooks_qemu.log 2>&1 &

sudo vi /etc/libvirt/hooks/my-action.sh 创建执行脚本,内容:

#!/bin/bash

VM_NAME="$1"
EVENT="$2"
PHASE="$3"

echo " $(date +'%Y-%m-%d %H:%M:%S') : $VM_NAME $EVENT $PHASE"

if [ "$VM_NAME" = "上一步找到的虚拟机名称" ] && [ "$EVENT" = "started" ] && [ "$PHASE" = "begin" ]; then
    echo "attach $VM_NAME network default"
    virsh attach-interface "$VM_NAME" network default
fi

sudo touch /var/log/libvirt/hooks_qemu.log 创建日志文件

分配权限

sudo chmod a+w /var/log/libvirt/hooks_qemu.log
sudo chmod a+x /etc/libvirt/hooks/qemu
sudo chmod a+x /etc/libvirt/hooks/my-action.sh

重启飞牛系统(如果只重启libvirtd服务,飞牛的虚拟机管理界面用不了)
重启之后, default网络应该会自动启动, 在飞牛虚拟机管理界面,启动虚拟机后,会触发钩子给虚拟机添加网络, 虚拟机就可以正常上网了

收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则