①安装前检查(所有系统通用)
1. CPU 虚拟化是否开启
grep -E -c '(vmx|svm)' /proc/cpuinfo # 结果 >= 1 表示 CPU 支持且 BIOS 已开启;结果为 0 需进 BIOS 开启 VT-x / AMD-V lsmod | grep kvm # 查看 kvm 内核模块是否加载
注意:如果在云服务器 / 部分 VPS 上,CPU 可能未透传虚拟化指令集,KVM 无法使用,需改选 Xen / LXC 或联系服务商开启嵌套虚拟化。
2. 系统要求
- 64 位 Linux(x86_64 / aarch64)
- 内存 ≥ 2GB(建议 4GB+,虚拟机数量越多需求越大)
- 磁盘 ≥ 20GB(虚拟机磁盘 + 系统镜像预留)
- 本面板要求:宿主机支持 SSH root 登录(或可 sudo),并开放 SSH 端口
②CentOS 7 / RHEL 7(yum)
# 安装 KVM 相关组件(官方源或阿里源) yum install -y qemu-kvm libvirt libvirt-client virt-install bridge-utils # 启动并设置开机自启 libvirtd systemctl enable --now libvirtd # 验证 systemctl status libvirtd --no-pager | head -5 virsh list --all
提示:CentOS 7 官方源已停止维护,建议先更换为阿里云镜像源再安装(若 yum 报 404 / 无法解析)。
③CentOS 8/9 / RHEL 8/9(dnf + virt 模块)
# 启用虚拟化模块并安装 dnf module enable -y virt dnf install -y qemu-kvm libvirt virt-install bridge-utils systemctl enable --now libvirtd virsh list --all
提示:RHEL 9 使用
dnf install -y qemu-kvm libvirt virt-install 即可;CentOS Stream 同理。④Ubuntu / Debian(apt)
apt update # Ubuntu apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils # Debian(软件包名略有不同) apt install -y qemu-kvm libvirt-daemon-system virtinst bridge-utils # 检查 KVM 是否可用(Ubuntu 特有工具) apt install -y cpu-checker && kvm-ok systemctl enable --now libvirtd # 当前用户加入 libvirt 组(可选,免 sudo 用 virsh) usermod -aG libvirt $(whoami) virsh list --all
⑤Rocky Linux / AlmaLinux(dnf + virt 模块)
dnf module enable -y virt dnf install -y qemu-kvm libvirt virt-install bridge-utils systemctl enable --now libvirtd virsh list --all
提示:Rocky / AlmaLinux 是 CentOS 停更后的主流替代,命令与 CentOS 8/9 完全一致。
⑥openEuler(欧拉)
# 欧拉软件包名为 qemu(含 KVM),部分版本包名 qemu-kvm dnf install -y qemu libvirt virt-install bridge-utils # 若提示找不到 qemu,可尝试: dnf install -y qemu-kvm libvirt virt-install systemctl enable --now libvirtd virsh list --all
注意:openEuler 的包名在不同小版本有差异(qemu / qemu-kvm),按提示选择即可。
⑦TencentOS Server(腾讯云)
# 与 CentOS 7/8 同源(rpm 系),直接用 yum/dnf 安装 yum install -y qemu-kvm libvirt virt-install bridge-utils # 或 dnf install -y qemu-kvm libvirt virt-install systemctl enable --now libvirtd virsh list --all
提示:TencentOS Server 3.1 兼容 CentOS 8 生态,包管理用 dnf。
⑧安装后验证(通用)
systemctl status libvirtd --no-pager | head -8 # libvirtd 应为 active (running) virsh version # 显示 libvirt / QEMU 版本 virsh list --all # 虚拟机列表(刚装完为空) virsh net-list --all # 默认 NAT 网络 virbr0 lsmod | grep kvm # kvm_intel / kvm_amd 已加载 qemu-kvm --version 2>/dev/null || qemu-img --version | head -1 # QEMU 可用
面板对接检查清单:
- libvirtd 已运行(
systemctl is-active libvirtd输出 active) - SSH root 可登录(本面板通过 SSH 执行 virsh / qemu-img 命令)
- 镜像存储目录可写(默认
/var/lib/libvirt/images)
⑨网络配置
方案 A:默认 NAT 网络(virbr0,开箱即用)
virsh net-start default # 启动默认网络(未自动启动时) virsh net-autostart default virsh net-list --all
方案 B:桥接网络(br0,虚拟机与宿主机同网段)
# 1. 创建桥接配置文件 cat > /etc/sysconfig/network-scripts/ifcfg-br0 <<'EOF' DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.80.102 # 改成宿主机 IP NETMASK=255.255.255.0 GATEWAY=192.168.80.1 DNS1=114.114.114.114 ONBOOT=yes EOF # 2. 物理网卡改为桥接从属 # /etc/sysconfig/network-scripts/ifcfg-eth0 内容改为: # DEVICE=eth0 / TYPE=Ethernet / BRIDGE=br0 / ONBOOT=yes # (原 IP/网关配置全部移到 br0 上) # 3. 重启网络 systemctl restart network ip a | grep -A3 br0
# /etc/netplan/99-bridge.yaml
network:
ethernets:
eth0:
dhcp4: false
bridges:
br0:
interfaces: [eth0]
dhcp4: false
addresses: [192.168.80.102/24] # 改成宿主机 IP
routes: [{ to: default, via: 192.168.80.1 }]
nameservers: { addresses: [114.114.114.114] }
netplan apply
ip a | grep -A3 br0⑩VNC / 防火墙放行(面板远程控制台必需)
面板的「VNC 远程控制台」通过 5900-5999 端口连接虚拟机显示,宿主机必须放行该端口段:
firewall-cmd --permanent --add-port=5900-5999/tcp firewall-cmd --reload firewall-cmd --list-ports
ufw allow 5900:5999/tcp ufw reload ufw status
iptables -I INPUT -p tcp --dport 5900:5999 -j ACCEPT service iptables save 2>/dev/null || true
排查技巧:面板连不上 VNC 时,在宿主机执行
ss -tln | grep 59 确认 5900 监听;从面板服务器执行 timeout 5 bash -c 'exec 3<>/dev/tcp/<宿主IP>/5900; head -c 12 <&3' | xxd,看到 RFB 003.008 即 VNC 服务正常。⑪qcow2 基础镜像下载(官方源)
| 系统 | 官方镜像源 | 说明 |
|---|---|---|
| Ubuntu Cloud | https://cloud-images.ubuntu.com/ | 各 LTS 版本 qcow2,选 *-cloudimg-amd64.img |
| Debian Cloud | https://cloud.debian.org/images/cloud/ | 选 generic 目录下 qcow2 |
| CentOS 7 Cloud | https://cloud.centos.org/centos/7/images/ | CentOS 7 官方 cloud 镜像 |
| Rocky Linux | https://dl.rockylinux.org/pub/rocky/ | 路径含 …/images/ 的 qcow2 |
| AlmaLinux | https://repo.almalinux.org/almalinux/ | cloud 目录下 qcow2 |
| openEuler | https://repo.openeuler.org/ | 路径含 virtual.x86_64 的 qcow2 |
| TencentOS | https://mirrors.cloud.tencent.com/tencentos/ | 腾讯云镜像站 |
cd /var/lib/libvirt/images wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img qemu-img info jammy-server-cloudimg-amd64.img # 确认格式为 qcow2
提示:下载完成后,在面板「镜像仓库」页面点击「刷新」即可看到;创建虚拟机时选择该镜像作为基础磁盘。cloud 镜像默认不设密码,面板会用 cloud-init 种子注入 root 密码 / IP。
⑫virt-install 命令行快速建机(不依赖面板)
# 基于 qcow2 基础镜像创建(后台安装,VNC :1 = 5901 端口) virt-install \ --name vmtest \ --vcpus 2 --memory 2048 \ --disk /var/lib/libvirt/images/vmtest.qcow2,format=qcow2,bus=virtio \ --network network=default,model=virtio \ --graphics vnc,listen=0.0.0.0,port=5901 \ --noautoconsole \ --os-variant centos7.0 # 使用 ISO 全新安装(挂光驱,boot 优先) virt-install \ --name vmiso \ --vcpus 2 --memory 2048 \ --disk /var/lib/libvirt/images/vmiso.qcow2,size=20,format=qcow2 \ --cdrom /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2009.iso \ --os-variant centos7.0 \ --graphics vnc,listen=0.0.0.0,port=5902 virsh list --all
提示:VNC 端口从 5900 起依次 +1(display :0 → 5900,:1 → 5901…)。面板内「创建虚拟机」「转 qcow2 安装」已自动完成以上操作。