Ubuntu20.04配置KVM并设置网桥
逸山 2021/9/10 Ubuntu
之前就熟悉了Ubuntu作为主力机器的配置,现在大部分的软件都可以使用顺利在Ubuntu上使用,不过还是有少许软件需要window的环境,wine提供了一个简便的方法,但此方法有许多不便,而虚拟机提供完整的windows环境,是一个不错的解决方案。本文介绍在Ubuntu下内核自带的虚拟机的安装已经网桥配置。
# 准备工作
使用如下指令安装KVM已经相应工具。
sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
sudo systemctl is-active libvirtd
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
shutdown -r now
# 网络配置
默认KVM使用的网络的NAT,可以使用如下指令查看。
$ virsh net-list
Name State Autostart Persistent
----------------------------------------
如果只在本机使用,无需配置网络为bridge。
配置网络为bridge可以让虚拟机从物理交换机获取地址并在局域网内自由访问。
配置bridge可以使用多种方式,这里介绍使用systemd-networkd配置文件的方法(推荐desktop环境使用)。
- 禁用systemd-networkd
systemctl disableable systemd-networkd
- 创建文件/etc/systemd/network/br.netdev
# file is /etc/systemd/network/br.netdev
[NetDev]
Name=br0
Kind=bridge
- 创建文件/etc/systemd/network/1-br0-bind.network
# file is 1-br0-bind.network
[Match]
Name=eno1
[Network]
Bridge=br0
- 创建文件/etc/systemd/network/2-br0-dhcp.network
# file is /etc/systemd/network/2-br0-dhcp.network
[Match]
Name=br0
[Network]
DHCP=ipv4
- 启用systemd-networkd并重启电脑
systemctl enable systemd-networkd
shutdown -r now
- 验证网络配置
- 确认主机可以访问网络
- 确认网桥已经配置完成
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.e4b97aeba030 no eno1
vnet0
virbr0 8000.5254009101ef yes virbr0-nic
# 最后
现在虚拟器可以配置为bridge模式了,例如如下的指令就创建了一个使用bridge的ubuntu server。
virt-install \
--name testvm \
--ram 2048 \
--disk path=/var/lib/libvirt/images/u19.qcow2,size=8 \
--vcpus 2 \
--os-type linux \
--os-variant generic \
--console pty,target_type=serial \
--bridge=br0 \
--cdrom /var/lib/libvirt/isos/ubuntu-18.04.4-live-server-amd64.iso
上述指令中的路径以及配置需根据实际情况修改,其中bridge指定了前面生成的网桥。