[toc]

一 安装qemu并启用

1.安装qemu

1, 安装

1
2
sudo apt install qemu-system-x86 qemu-utils libvirt-daemon-system libvirt-clients bridge-utils virt-manager

  1. 验证

    1
    qemu-system-x86_64 --version
  2. 启动并启用相关服务:

    1
    2
    sudo systemctl start libvirtd
    sudo systemctl enable libvirtd

2.配置kvm

  1. 检查CPU是否支持虚拟化
1
egrep -c '(vmx|svm)' /proc/cpuinfo

如果返回的数字大于0,说明CPU支持虚拟化

  1. 加载kvm模块
1
2
3
sudo modprobe kvm
sudo modprobe kvm-intel # 如果是Intel CPU
sudo modprobe kvm-amd # 如果是AMD CPU

二 使用qemu创建虚拟机

1.创建桥接接口

  1. 创建桥接接口:

    1
    2
    sudo ip link add name br0 type bridge
    sudo ip link set dev br0 up
  2. 将tap设备添加到桥接中:

    1
    sudo ip link set tap0 master br0
  3. 将物理网络接口添加到桥接中(例如 eth0):

    1
    sudo ip link set eth0 master br0

2.创建tap0网卡

  1. 确保桥接接口存在并已启动

首先,检查 br0 是否存在并处于活动状态:

1
ip link show br0

如果 br0 不存在,可以使用以下命令创建并启动它:

1
2
sudo ip link add name br0 type bridge
sudo ip link set br0 up
  1. 创建并配置 TAP 设备

创建一个 TAP 设备并将其连接到桥接接口 br0。可以使用以下命令:

1
2
3
sudo ip tuntap add dev tap0 mode tap
sudo ip link set tap0 up
sudo ip link set tap0 master br0
  1. 检查 /dev/net/tun 的权限

确保您有权限访问 /dev/net/tun。可以使用以下命令检查权限:

1
ls -l /dev/net/tun

如果权限不正确,可以更改权限:

1
sudo chmod 666 /dev/net/tun
  1. 确保加载了必要的内核模块

确保 tun 模块已加载。可以使用以下命令检查:

1
lsmod | grep tun

如果未加载,可以使用以下命令加载:

1
sudo modprobe tun

3.配置桥接的IP地址:

​ 1. 编辑 /etc/network/interfaces 文件来配置桥接接口的IP地址

1
sudo vim /etc/network/interfaces
  1. 在文件中添加以下内容(假设你的物理接口是 eth0):
1
2
3
4
5
6
auto br0
iface br0 inet static
address 10.0.1.31
netmask 255.255.0.0
gateway 10.0.1.1
bridge_ports eth0
  1. 启用桥接接口:
1
sudo ip link set dev br0 up
  1. 重启网络服务
1
sudo systemctl restart networking

4.从网络启动qemu虚拟机

1
sudo qemu-system-x86_64 -m 8192 -smp 4 -netdev tap,id=net0,ifname=tap0 -device virtio-net-pci,netdev=net0 -boot n
  1. 网络启动qemu虚拟机并启用kvm
    1
    sudo qemu-system-x86_64 -enable-kvm -m 8192 -smp 4 -netdev tap,id=net0,ifname=tap0 -device virtio-net-pci,netdev=net0 -boot n