KVM虚拟机:修订间差异

无编辑摘要
无编辑摘要
 
(未显示同一用户的2个中间版本)
第46行: 第46行:


== 虚拟化管理软件==
== 虚拟化管理软件==
为了方便管理操作,需要安装一个虚拟化管理软件。
为了方便管理操作,需要安装一个图形化虚拟化管理软件。
{| class="wikitable"  
{| class="wikitable"  
! 名称
! 名称
第69行: 第69行:
| https://ubuntu.com/openstack/what-is-openstack
| https://ubuntu.com/openstack/what-is-openstack
|}
|}
== 配置桥接网路 ==
KVM虚拟机的默认网络NAT,共享主机ip上网,对外部网络不可见。而网络桥接(bridge)可以让虚拟机(VM)像物理主机一样直接接入外部网络,从主机外访问虚拟机。
示例,主机Ubuntu创建网桥,配置虚拟机windows使用网桥:
* 主机创建网桥接口
Ubuntu24.04桌面版,使用NetworkManager管理网络,使用 NetworkManager 的命令行工具 nmcli 来直接创建和管理网桥,不用手动修改 Netplan 文件。
<syntaxhighlight lang="bash">
# 查看是否NetworkManager管理,物理网卡会显示connected。
nmcli device status
nmcli con show
# 创建网桥接口(br0)
sudo nmcli con add ifname br0 type bridge con-name br0
# 将物理接口(enp5s0)添加为网桥的从接口
sudo nmcli con add type bridge-slave ifname enp5s0 master br0
# 禁用 STP(生成树协议,以减少延迟;可选但推荐)
sudo nmcli con mod br0 bridge.stp no
# 配置网桥使用 DHCP
sudo nmcli con mod br0 ipv4.method auto ipv6.method ignore
# 关闭原物理连接(防止冲突)
sudo nmcli con down "Wired connection 2"
# 激活网桥
sudo nmcli con up br0
# 现在,运行 ip addr show 或 nmcli device show 检查:br0 应该有 IP 地址(从 DHCP 获取),enp5s0 应该显示为 br0 的从接口,无独立 IP。
</syntaxhighlight>
方法2,修改netplan配置文件。
<syntaxhighlight lang="bash">
# 查看当前网络接口
# 假设你的主网卡是 enp3s0(有线)或 eth0
ip a
# 编辑 Netplan 配置文件
# 通常位于 /etc/netplan/,如
# 可以先备份一个配置文件,便于恢复。
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
sudo vim /etc/netplan/01-netcfg.yaml
# 配置文件添加或修改内容为:
# 注意缩进!YAML 对格式敏感。
network:
  version: 2
  renderer: networkd    # 或 NetworkManager,根据系统选择
  ethernets:
    enp0s3:  # 替换为您的物理接口
      dhcp4: no
  bridges:
    br0:
      interfaces: [enp0s3]  # 替换为您的物理接口
      dhcp4: yes  # 或手动配置:addresses: [192.168.1.100/24], gateway4: 192.168.1.1
      parameters:
        stp: false  # 可选,关闭生成树协议以减少延迟
# 应用配置
sudo netplan generate
sudo netplan apply
# 验证
ip a show br0
</syntaxhighlight>
方法3,创建临时网桥,测试用,重启失效。
<syntaxhighlight lang="bash">
# 使用 ip 命令临时创建网桥(名为 br0)
sudo ip link add name br0 type bridge
sudo ip link set dev br0 up
# 将物理接口添加到网桥
sudo ip addr flush dev enp0s3  # 移除物理接口上的 IP 配置
sudo ip link set dev enp0s3 master br0
sudo ip link set dev enp0s3 up
# 将原物理接口的 IP 配置转移到 br0 上。例如,如果原 IP 是 192.168.1.100/24:
sudo ip addr add 192.168.1.100/24 dev br0
sudo ip route add default via 192.168.1.1 dev br0  # 替换为您的网关
# 方案2
sudo ip link add name br0 type bridge
sudo ip link set enp3s0 master br0
sudo dhclient br0
sudo ip link set br0 up
</syntaxhighlight>
* 配置虚拟机,使用网桥
方法1,使用virt-manager界面配置。创建或编辑虚拟机,在网络设置中选择:Source mode选Bridge,Network source选一个,Device name填br0。





2026年1月23日 (五) 02:06的最新版本

KVM的全称是Kernel-based Virtual Machine(基于内核的虚拟机),是一种内建于Linux中的开源虚拟化技术。Linux内核 2.6.20 及更新版包含 KVM。

简介

时间轴

  • 2006年,Avi Kivity 在Qumranet初创公司开始了KVM的研发工作。
  • 2006年10月19日,Avi Kivity 首次公布KVM。
  • 2007年2月5日,KVM被包含到Linux 2.6.20核心中。
  • 2008年,红帽公司(Red Hat)收购Qumranet公司。

了解更多 >> 维基百科:基于内核的虚拟机#历史 lwn.net:KVM 十周年


安装

Ubuntu安装为例:

# 确保你的 CPU 支持虚拟化(Intel VT-x 或 AMD-V)
# 输出大于 0 表示支持。
# 确认 BIOS/UEFI 中已启用虚拟化(通常叫 Intel VT-x / AMD-V)。
egrep -c '(vmx|svm)' /proc/cpuinfo

# 安装需要的软件包
sudo apt update  # 更新软件源
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager virtinst
  • qemu-kvm:提供 KVM 虚拟化后端
  • libvirt-*:管理虚拟机的守护进程和工具
  • virt-manager:图形化虚拟机管理器(可选但推荐)
  • virtinst:命令行创建虚拟机工具(如 virt-install)

将当前用户加入相关组(避免每次用 sudo):

sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER

了解更多 >> Ubuntu 博客:Tytus Kurek - KVM 虚拟机管理程序:初学者指南 Ubuntu 服务器文档:虚拟化


安装系统

图形化界面

  • 官网下载系统镜像,如Windows 11 ISO。
  • 启动 Virtual Machine Manager
  • 点击左上角 “新建虚拟机”(Create a new virtual machine)
  • 选择 “本地安装介质(ISO)”,点击“前进”

虚拟化管理软件

为了方便管理操作,需要安装一个图形化虚拟化管理软件。

名称 描述 网站
virt-manager virt-manager应用程序是一个桌面用户界面,用于通过 libvirt 管理虚拟机。不同系统安装命令:
yum install virt-manager (Fedora)
apt-get install virt-manager (Debian)
emerge virt-manager (Gentoo)
pkg_add virt-manager (OpenBSD)
https://virt-manager.org/
Multipass Ubuntu 发行商 Canonical 推出的虚拟机管理工具。 https://multipass.run
OpenStack https://ubuntu.com/openstack/what-is-openstack

配置桥接网路

KVM虚拟机的默认网络NAT,共享主机ip上网,对外部网络不可见。而网络桥接(bridge)可以让虚拟机(VM)像物理主机一样直接接入外部网络,从主机外访问虚拟机。 示例,主机Ubuntu创建网桥,配置虚拟机windows使用网桥:

  • 主机创建网桥接口

Ubuntu24.04桌面版,使用NetworkManager管理网络,使用 NetworkManager 的命令行工具 nmcli 来直接创建和管理网桥,不用手动修改 Netplan 文件。

# 查看是否NetworkManager管理,物理网卡会显示connected。
nmcli device status
nmcli con show

# 创建网桥接口(br0)
sudo nmcli con add ifname br0 type bridge con-name br0

# 将物理接口(enp5s0)添加为网桥的从接口
sudo nmcli con add type bridge-slave ifname enp5s0 master br0

# 禁用 STP(生成树协议,以减少延迟;可选但推荐)
sudo nmcli con mod br0 bridge.stp no

# 配置网桥使用 DHCP
sudo nmcli con mod br0 ipv4.method auto ipv6.method ignore

# 关闭原物理连接(防止冲突)
sudo nmcli con down "Wired connection 2"

# 激活网桥
sudo nmcli con up br0

# 现在,运行 ip addr show 或 nmcli device show 检查:br0 应该有 IP 地址(从 DHCP 获取),enp5s0 应该显示为 br0 的从接口,无独立 IP。

方法2,修改netplan配置文件。

# 查看当前网络接口
# 假设你的主网卡是 enp3s0(有线)或 eth0
ip a 

# 编辑 Netplan 配置文件
# 通常位于 /etc/netplan/,如
# 可以先备份一个配置文件,便于恢复。
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
sudo vim /etc/netplan/01-netcfg.yaml

# 配置文件添加或修改内容为:
# 注意缩进!YAML 对格式敏感。
network:
  version: 2
  renderer: networkd     # 或 NetworkManager,根据系统选择
  ethernets:
    enp0s3:  # 替换为您的物理接口
      dhcp4: no
  bridges:
    br0:
      interfaces: [enp0s3]  # 替换为您的物理接口
      dhcp4: yes  # 或手动配置:addresses: [192.168.1.100/24], gateway4: 192.168.1.1
      parameters:
        stp: false  # 可选,关闭生成树协议以减少延迟

# 应用配置
sudo netplan generate
sudo netplan apply

# 验证
ip a show br0

方法3,创建临时网桥,测试用,重启失效。

# 使用 ip 命令临时创建网桥(名为 br0)
sudo ip link add name br0 type bridge
sudo ip link set dev br0 up

# 将物理接口添加到网桥
sudo ip addr flush dev enp0s3  # 移除物理接口上的 IP 配置
sudo ip link set dev enp0s3 master br0
sudo ip link set dev enp0s3 up

# 将原物理接口的 IP 配置转移到 br0 上。例如,如果原 IP 是 192.168.1.100/24:
sudo ip addr add 192.168.1.100/24 dev br0
sudo ip route add default via 192.168.1.1 dev br0  # 替换为您的网关

# 方案2
sudo ip link add name br0 type bridge
sudo ip link set enp3s0 master br0
sudo dhclient br0
sudo ip link set br0 up
  • 配置虚拟机,使用网桥

方法1,使用virt-manager界面配置。创建或编辑虚拟机,在网络设置中选择:Source mode选Bridge,Network source选一个,Device name填br0。


资源

官网

教程

相关文章