ubuntu 安装 libvirt
安装 kvm 工具包
apt -y install qemu-system-x86 bridge-utils cpu-checker libvirt-clients libvirt-daemon libvirt-daemon-system virt-manager
检查系统是否支持 kvm
kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
查看网卡信息
安装完虚拟工具后,会自动生成一个 virbr0 网卡,充当虚拟机的 NAT 网卡
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:76:80:a1 brd ff:ff:ff:ff:ff:ff
altname enp2s1
inet 192.168.174.121/24 metric 100 brd 192.168.174.255 scope global dynamic ens33
valid_lft 1282sec preferred_lft 1282sec
inet6 fe80::20c:29ff:fe76:80a1/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:76:80:ab brd ff:ff:ff:ff:ff:ff
altname enp2s2
inet 192.168.80.135/24 metric 100 brd 192.168.80.255 scope global dynamic ens34
valid_lft 1707sec preferred_lft 1707sec
inet6 fe80::20c:29ff:fe76:80ab/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:39:a2:e9 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
查看虚拟网卡
brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400ad33e1 yes
ctyun 安装 libvirt
安装 kvm 工具包
yum -y install libvirt virt-manager qemu-kvm virt-install
开机自启动
systemctl enable --now libvirtd
Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.
Created symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket → /usr/lib/systemd/system/virtlockd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket → /usr/lib/systemd/system/virtlogd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket → /usr/lib/systemd/system/libvirtd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket → /usr/lib/systemd/system/libvirtd-ro.socket.
查看网卡信息
安装完虚拟工具后,会自动生成一个 virbr0 网卡,充当虚拟机的 NAT 网卡
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2f:c1:1a brd ff:ff:ff:ff:ff:ff
inet 192.168.174.123/24 brd 192.168.174.255 scope global dynamic noprefixroute ens160
valid_lft 1769sec preferred_lft 1769sec
inet6 fe80::ac98:c3b4:178a:4196/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:2f:c1:24 brd ff:ff:ff:ff:ff:ff
inet 192.168.80.137/24 brd 192.168.80.255 scope global dynamic noprefixroute ens192
valid_lft 1342sec preferred_lft 1342sec
inet6 fe80::3011:b315:4a35:b50b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:7d:5e:b8 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
查看虚拟网卡
brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.5254007d5eb8 yes
默认网络配置
default.xml
cat /etc/libvirt/qemu/networks/default.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh net-edit default
or other application using the libvirt API.
-->
<network>
<name>default</name>
<uuid>aa2867b1-6805-4c44-82d8-66c027f314d9</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:92:dc:c3'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
参考文档
https://libvirt.org/docs.html