误删除 KVM 虚拟机 virbr0 接口解决

重新创建 virbr0 接口

今天清理机器上不需要的虚拟网络接口,一不小心把 KVM 虚拟机的 virbr0 接口删除了,试了一下果然不能 SSH 登录虚拟机了,于是需要将 virbr0 接口恢复。

  1. 拷贝接口定义文件:

    cp /usr/share/libvirt/networks/default.xml /tmp/default.xml
    
  2. 重新创建网络:

    sudo virsh net-destroy default          # 关闭旧网络
    sudo virsh net-undefine default         # 删除旧网络
    sudo virsh net-define /tmp/default.xml  # 创建新网络
    sudo virsh net-start default            # 启动网络
    rm /tmp/default.xml                     # 清理
    

参考:What is the virbr0 interface used for? | Ask Ubuntu

Troubleshooting

启动网络失败

$ sudo virsh net-start default
error: Failed to start network default
error: internal error: Child process (VIR_BRIDGE_NAME=virbr0 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper) unexpected exit status 2:
dnsmasq: failed to create listening socket for 192.168.122.1: Address already in use

可以看到网络无法启动是由于 dnsmasq 绑定 IP 192.168.122.1 失败:地址已经在使用。

解决方法:

  1. 停止旧的 dnsmasq 进程:

    sudo pkill dnsmasq
    
  2. 重新启动网络:

    sudo virsh net-start default
    
posted @ 2025-04-12 20:13  Undefined443  阅读(123)  评论(0)    收藏  举报