Linux KVM 虚拟机从零入门到生产避坑完整教程
前言(为什么服务器首选 KVM)
KVM 是 Linux 内核级原生虚拟化,性能仅次于物理机,远优于 VMware、VirtualBox。
- 属于全虚拟化,可以跑 Windows / Linux 任意系统
- 内核级驱动,CPU、内存损耗极低
- 支持 CPU 核心绑定、内存独占、磁盘精简置备
- 适合 7×24 服务器挂机、游戏服务端、Windows 虚拟机、多开隔离环境
本教程适配:Ubuntu / Debian / CentOS / RockyLinux,包含新手必学命令 + 生产必踩坑点。
前置检查:CPU 是否支持虚拟化
1. 检查 CPU 虚拟化开关(必须开启)
grep -E 'vmx|svm' /proc/cpuinfo
- Intel CPU:显示
vmx - AMD CPU:显示
svm
注意
无输出 → BIOS 未开启 Intel VT-x / AMD-V,必须重启进 BIOS 打 开,否则无法使用 KVM。
2. 确认内核模块
lsmod | grep kvm
正常输出 kvm_intel / kvm_amd、kvm 即为正常。
一键安装 KVM 全套环境
Ubuntu / Debian
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager virtinst
CentOS / Rocky / AlmaLinux
sudo dnf install -y @virtualization
开机自启 + 权限配置(关键)
# 启动服务
sudo systemctl enable --now libvirtd
sudo systemctl enable --now virtlogd
# 当前用户加入虚拟机组,免 sudo 操作
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
信息
注销重登生效,否则后续创建虚拟机报错权限不足。
验证安装
virsh version
输出版本号即环境搭建完成。
KVM 两大网络模式(新手90%坑在这里)
1. NAT 模式(默认 virbr0)
- 虚拟机可以上网
- 主机不能访问虚拟机、外网不能访问虚拟机
- 适合:测试、临时使用
2. 桥接模式(生产必用 br0)
- 虚拟机和物理机同一局域网、独立IP
- 外网、局域网可直接访问虚拟机端口
- 适合:挂服务端、做服务器、端口映射、长期运行
快速桥接网卡命令
# 创建桥接
sudo nmcli connection add type bridge con-name br0 ifname br0
# 将物理网卡绑定到桥接(替换你的网卡名,如 eth0、enp3s0)
sudo nmcli connection add type bridge-slave con-name br0-slave ifname eth0 master br0