在企业环境中,PVE 虚拟机一多,最头疼的往往不是性能,而是——IP 管理!
今天这篇,我们就教你如何在不登录虚拟机的情况下,直接在 PVE 界面中查看、修改 Windows 虚拟机的 IP 地址。
1. 背景与痛点
当我们在 PVE 环境中部署多台 Windows 虚拟机时,往往会遇到这些问题:
❌ 无法在 PVE 控制台直接查看虚拟机 IP;
❌ 修改 IP 必须登录系统手动更改;
❌ 多台机器一混乱,IP 分配容易重叠;
❌ 排查、维护成本高。
尤其是在中大型集群中,这种问题会成倍放大。
于是,“如何在 PVE 控制台直接查看并修改虚拟机 IP”,就成了很多系统管理员的刚需功能。
本文目标:让你的 PVE 实现以下效果——无需登录虚拟机,在 PVE 界面即可直接查看、修改 Windows 虚拟机 IP!
2. 原理概述
这个功能其实是由两个关键组件协同完成的:
流程简化如下?:
PVE 控制台 ⇄ Cloud-Init ⇄ Cloudbase-Init(Windows 虚拟机)
↑ ↓
获取 IP ← QEMU Agent ← 虚拟机系统
理解要点:
QEMU Agent 负责“上报信息”(让 PVE 知道虚拟机的 IP);
Cloudbase-Init 负责“执行命令”(让 PVE 能修改虚拟机的 IP)。
3. 实操步骤
在 PVE 管理页面中: 打开目标虚拟机; 点击「硬件 → 添加 → CD/DVD 驱动器」; 选择 virtio-win ISO 镜像; 保存后重启虚拟机。 在 Windows 虚拟机中: 打开 virtio-win 光盘; 找到 virtio-win-guest-tools.exe; 双击安装; 安装完成后重启虚拟机。 在 PVE 中: 打开虚拟机 →「选项」→「QEMU 代理」→ 启用; 重启虚拟机; 返回「概要」页,若显示出 IP 地址,即代表配置成功。 官方下载地址: ? https://www.cloudbase.it/downloads/ 文件名: 双击安装包 → 点击 运行; 勾选「I accept the terms」→ 连续点击两次 Next; 在配置界面:日志串口选择 COM1;运行服务用户选择 LocalSystem; 点击 Install → 等待安装完成; 安装结束后点击 Finish; ⚠️ 切勿勾选 Sysprep,否则系统会重新封装。 修改 将 以管理员身份运行 powershell 执行策略设置为不受限, 复制下面代码到 powershell 进行操作。 下载TencentCloudRun.ps1脚本(可后台回复“ IP ”领取)。 将TencentCloudRun.ps1 脚本拷贝到下方路径下: 右键单击 如存在 Unblock/解除锁定的选项,则需勾选 Unblock/解除锁定,并单击 OK 退出。 如不存在 Unblock 选项,则请跳过本步骤。 步骤 3:替换 下载 将下方路径下的 localscripts.py 替换为上面的 localscripts.py 文件。 Windows虚拟机的操作准备妥当后,接下来就是pve管理界面的操作了。 4、在 PVE 中加载 CloudInit 服务 pve管理页面对应虚拟机没有配置 CloudInit 服务的,点击「 CloudInit 」页面显示如下图: 点击目标虚拟机,点击「硬件」,然后点击「添加 CloudInit 设备」。 重启完成之后在 CloudInit 的 IP 配置双击,打开 IP 配置。 如果使用 DHCP ,选择自动。 如果手动分配 IP,就选 IPv4,并配置自己的IP和网关。 注:IP 要根据自己实际的 IP 网段进行分配,请勿重复 IP。1、安装与启用 QEMU Agent(实现 IP 显示)
步骤 1:挂载 virtio 驱动

步骤 2:安装 QEMU Guest Tools


步骤 3:启用 QEMU Agent


2、安装 Cloudbase-Init(实现远程修改 IP)
步骤 1:下载 Cloudbase-Init
CloudbaseInitSetup_Stable_x64.msi如果虚拟机无网络,可离线下载后传入安装。步骤 2:安装 Cloudbase-Init

3、修改配置文件
步骤 1:修改
cloudbase-init.conf文件打开
cloudbase-init.conf 配置文件。cloudbase-init.conf 配置文件的默认路径为:C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\
cloudbase-init.conf文件编辑权限(大部分情况需要),如下图右键点击属性-安全然后按照下图一步步操作。
cloudbase-init.conf 配置文件替换为以下内容并保存:[DEFAULT]username=Administratorgroups=Administratorsinject_user_password=trueconfig_drive_raw_hhd=trueconfig_drive_cdrom=trueconfig_drive_vfat=truebsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exemtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\san_policy=OnlineAllmetadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService,cloudbaseinit.metadata.services.ec2service.EC2Service,cloudbaseinit.metadata.services.httpservice.HttpService,cloudbaseinit.metadata.services.maasservice.MaaSHttpServicemetadata_base_url=http://169.254.0.23/ec2_metadata_base_url=http://169.254.0.23/retry_count=2retry_count_interval=5plugins=cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin,cloudbaseinit.plugins.common.userdata.UserDataPluginverbose=truedebug=truelogdir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\logfile=cloudbase-init.logdefault_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN#logging_serial_port_settings=COM1,115200,N,8mtu_use_dhcp_config=truentp_use_dhcp_config=truefirst_logon_behaviour=nonetbios_host_name_compatibility=falseallow_reboot=trueactivate_windows=truekms_host="kms.tencentyun.com"local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\volumes_to_extend=1,2,3
Set-ExecutionPolicy Unrestricted

步骤 2:配置下载TencentCloudRun.ps1脚本
C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScriptsTencentCloudRun.ps1 脚本,选择属性,并在弹出窗口中查看脚本是否具备可执行权限。如下图所示:
localscripts.py文件localscripts.py 文件(可后台回复“ IP ”领取)。C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common 


按需配置 CloudInit 的位置,完成之重启虚拟机即可。


4. 验证效果与常见问题
在我们测试环境实测没有问题。以下是常见问题与解决办法:

日志路径:
C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\
5. 总结
通过以上配置,PVE 管理员可以实现:
✅ 在 Web 界面直接查看虚拟机 IP
✅ 一键修改 Windows 虚拟机 IP(无需登录)
✅ 批量分配 IP,支持快速重置、回收
✅ 提升大规模集群的运维效率
实测小结:
QEMU Agent 负责“报告”;
Cloudbase-Init 负责“执行”;
二者结合后,PVE 的虚拟机网络管理体验能上一个台阶。
有了这套方案,哪怕你管理上百台 Windows 虚拟机,也能做到“IP 一目了然,配置一键修改”。
本文链接:https://kinber.cn/post/5821.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:

支付宝微信扫一扫,打赏作者吧~
