×

PVE实战进阶 | 虚拟机太多 IP 管理混乱?这套方案快速搞定!

hqy hqy 发表于2025-11-03 23:30:30 浏览9 评论0

抢沙发发表评论

在企业环境中,PVE 虚拟机一多,最头疼的往往不是性能,而是——IP 管理

今天这篇,我们就教你如何在不登录虚拟机的情况下,直接在 PVE 界面中查看、修改 Windows 虚拟机的 IP 地址


1. 背景与痛点


当我们在 PVE 环境中部署多台 Windows 虚拟机时,往往会遇到这些问题:

❌ 无法在 PVE 控制台直接查看虚拟机 IP;

❌ 修改 IP 必须登录系统手动更改;

❌ 多台机器一混乱,IP 分配容易重叠;

❌ 排查、维护成本高。

尤其是在中大型集群中,这种问题会成倍放大。

于是,“如何在 PVE 控制台直接查看并修改虚拟机 IP”,就成了很多系统管理员的刚需功能。

本文目标:让你的 PVE 实现以下效果——无需登录虚拟机,在 PVE 界面即可直接查看、修改 Windows 虚拟机 IP!


2. 原理概述


这个功能其实是由两个关键组件协同完成的:

组件
功能说明
部署位置
QEMU Agent
将虚拟机系统信息(包括 IP)上报给 PVE
安装在虚拟机内部
Cloud-Init + Cloudbase-Init
支持 PVE 外部配置文件修改虚拟机网络参数
安装在 PVE 与虚拟机内部

流程简化如下?:

PVE 控制台 ⇄ Cloud-Init ⇄ Cloudbase-Init(Windows 虚拟机)
          ↑                      ↓
       获取 IP ← QEMU Agent ← 虚拟机系统

理解要点:

  • QEMU Agent 负责“上报信息”(让 PVE 知道虚拟机的 IP);

  • Cloudbase-Init 负责“执行命令”(让 PVE 能修改虚拟机的 IP)。


3. 实操步骤


1、安装与启用 QEMU Agent(实现 IP 显示)

步骤 1:挂载 virtio 驱动

在 PVE 管理页面中:

  • 打开目标虚拟机;

  • 点击「硬件 → 添加 → CD/DVD 驱动器」;

  • 选择 virtio-win ISO 镜像;

  • 保存后重启虚拟机。

图片

步骤 2:安装 QEMU Guest Tools

在 Windows 虚拟机中:

  • 打开 virtio-win 光盘;

  • 找到 virtio-win-guest-tools.exe;

  • 双击安装;

  • 安装完成后重启虚拟机。

图片
图片

步骤 3:启用 QEMU Agent

在 PVE 中:

  • 打开虚拟机 →「选项」→「QEMU 代理」→ 启用;

  • 重启虚拟机;

  • 返回「概要」页,若显示出 IP 地址,即代表配置成功。

图片
图片

2、安装 Cloudbase-Init(实现远程修改 IP)

步骤 1:下载 Cloudbase-Init

官方下载地址:

https://www.cloudbase.it/downloads/

文件名:CloudbaseInitSetup_Stable_x64.msi

如果虚拟机无网络,可离线下载后传入安装。

步骤 2:安装 Cloudbase-Init

  • 双击安装包 → 点击 运行

  • 勾选「I accept the terms」→ 连续点击两次 Next;

  • 在配置界面:日志串口选择 COM1;运行服务用户选择 LocalSystem;

  • 点击 Install → 等待安装完成;

  • 安装结束后点击 Finish;

  • ⚠️ 切勿勾选 Sysprep,否则系统会重新封装。

图片

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

以管理员身份运行 powershell 执行策略设置为不受限,

复制下面代码到 powershell 进行操作。


Set-ExecutionPolicy Unrestricted
图片

步骤 2:配置下载TencentCloudRun.ps1脚本

下载TencentCloudRun.ps1脚本(可后台回复“ IP ”领取)

将TencentCloudRun.ps1 脚本拷贝到下方路径下:

C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts

右键单击 TencentCloudRun.ps1 脚本,选择属性,并在弹出窗口中查看脚本是否具备可执行权限。如下图所示:

图片

如存在 Unblock/解除锁定的选项,则需勾选 Unblock/解除锁定,并单击 OK 退出。 

如不存在 Unblock 选项,则请跳过本步骤。

步骤 3:替换localscripts.py文件

下载 localscripts.py 文件(可后台回复“ IP ”领取)。

将下方路径下的 localscripts.py 替换为上面的 localscripts.py 文件。

C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\Lib\site-packages\cloudbaseinit\plugins\common 

图片

Windows虚拟机的操作准备妥当后,接下来就是pve管理界面的操作了。

4、在 PVE 中加载 CloudInit 服务

pve管理页面对应虚拟机没有配置 CloudInit 服务的,点击「 CloudInit 」页面显示如下图:


图片

点击目标虚拟机,点击「硬件」,然后点击「添加 CloudInit 设备」。

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

重启完成之后在 CloudInit 的 IP 配置双击,打开 IP 配置。

如果使用 DHCP ,选择自动。

图片

如果手动分配 IP,就选 IPv4,并配置自己的IP和网关。

注:IP 要根据自己实际的 IP 网段进行分配,请勿重复 IP。

图片

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 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客