📖 文档说明
本教程是 WebVirtCloud 部署系列 的第三篇,在完成以下两篇基础部署后进行:
- ✅ ① WebVirtCloud KVM虚拟化管理系统(Web端)部署教程
- ✅ ② WebVirtCloud KVM虚拟化计算节点(单KVM)部署教程
- ✅ ③ WebVirtCloud KVM虚拟化管理系统 桥接网络配置与虚拟机开通教程
功能介绍
本文档提供在 Ubuntu 22.04 系统上部署 KVM 虚拟化计算节点 的完整操作流程,专为配合 WebVirtCloud 管理平台使用而设计。通过配置 libvirtd 服务以监听 TCP 端口(16509),并结合严格的防火墙规则,实现 WebVirtCloud 管理端对远程 KVM 主机的安全、无密码连接与虚拟机集中管控。适用于构建轻量级、分布式的 KVM 虚拟化基础设施。
部署前提
- 操作系统:Ubuntu 22.04 LTS(用于计算节点)
- 管理端:已部署并运行的WebVirtCloud管理端(例如
192.168.25.208)
- 虚拟化支持:计算节点需支持KVM虚拟化(Intel VT-x / AMD-V)
脚本快速部署
https://gitee.com/cncsrf/webvirtcloud-auto-deploy

一、KVM 计算节点配置
1、检查系统是否支持 KVM
# 在计算节点上执行
egrep -c '(vmx|svm)' /proc/cpuinfo
# 输出大于0表示支持虚拟化
kvm-ok
# 安装 CPU 检查工具(如未安装)
sudo apt install -y cpu-checker
2、安装 KVM 及必要组件
# 更新系统并安装 KVM 相关包
sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst
# 启动并启用 libvirtd 服务
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
# 将当前用户加入管理组(需重新登录生效)
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
💡 执行后建议重新 SSH 登录,使用户组生效。
3、配置 libvirtd 允许无密码 TCP 连接
# 编辑 libvirtd 配置文件
sudo tee /etc/libvirt/libvirtd.conf > /dev/null <<'EOF'
listen_tls = 0
listen_tcp = 1
auth_tcp = "none"
tcp_port = "16509"
listen_addr = "0.0.0.0"
EOF
4、禁用 socket activation(关键!)
# 停止并禁用所有 libvirtd socket 单元,此步骤防止 systemd 通过 socket 激活 libvirtd,确保后续 --listen 生效
sudo systemctl stop libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
sudo systemctl disable libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
sudo systemctl mask libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
5、强制 libvirtd 以 –listen 模式运行
sudo systemctl edit libvirtd
输入以下内容:
[Service]
Type=simple
ExecStart=
ExecStart=/usr/sbin/libvirtd --listen
Restart=on-failure
RestartSec=5
6、重载并启动服务
sudo systemctl daemon-reload
sudo systemctl restart libvirtd
7、验证端口和进程
# 检查是否监听 16509
sudo ss -tulnp | grep 16509
# 检查进程参数
ps aux | grep libvirtd
二、防火墙与安全配置(安全必需)
🔒 切勿跳过!auth_tcp = "none"表示无任何认证,任何能访问 16509 的人都可完全控制主机!
假设 WebVirtCloud 控制端 IP 为
192.168.25.208sudo ufw allow from 192.168.25.208 to any port 16509 proto tcp
sudo ufw allow 22/tcp # 别忘了 SSH
sudo ufw enable
sudo ufw status verbose #检查当前 UFW 状态和规则
三、在 WebVirtCloud 管理端添加计算节点
登录WebVirtCloud管理界面 (
http://管理端IP)点击左侧”计算节点”
点击”添加计算节点”
填写:
- 类型:TCP
- 主机名/IP:
192.168.20.43 - 用户名/密码:留空或任意
- 状态:应显示“已连接”
点击保存即可连接成功。

四、常见错误排查
| 现象 | 原因 | 解决 |
|---|---|---|
| 端口未监听 | 未禁用 socket 或未加 --listen |
执行第二、三步 |
| Connection refused | 防火墙阻止 or 服务未运行 | 检查 ufw 和 systemctl status libvirtd |
| 启动失败 | override 配置语法错误 | journalctl -u libvirtd 查日志 |