VMware需用Workstation Pro虚拟网络编辑器对VMnet子网限速,Hyper-V用PowerShell按vNIC设OutboundKbps,虚拟机内程序限速则须在其中安装NetLimiter并配置进程规则。

当你在Windows宿主机上运行VMware或Hyper-V虚拟机时,虚拟机后台持续下载、同步或更新可能瞬间吃光物理网卡全部带宽,导致宿主机网页打不开、视频会议卡顿、远程桌面断连。这不是虚拟机配置错误,而是默认未启用任何出站流量约束。
通过VMware Workstation Pro设置虚拟网络限速
该方法仅适用于VMware Workstation Pro(非Player免费版),利用其内置的“虚拟网络编辑器”对整个VMnet子网实施速率封顶,操作后所有挂在此网段的虚拟机自动受控。
第一步:关闭所有正在运行的虚拟机;
第二步:以管理员身份运行VMware Workstation → 顶部菜单栏点击【编辑】→【虚拟网络编辑器】;
第三步:在列表中选中目标虚拟网络(如VMnet8 NAT模式或VMnet1仅主机模式)→ 点击右下角【更改设置】获取权限;
第四步:勾选【流量整形】→ 在“出站带宽”栏输入上限值(单位Mbps),例如填50表示限制该网段所有虚拟机合计上传+下载总和不超过50Mbps;
第五步:点击【应用】→ 确认提示后重启虚拟机,规则即时生效。注意:此限速作用于虚拟交换机层,【不区分虚拟机个体,所有接入该VMnet的虚拟机共享此带宽配额】。
使用PowerShell为Hyper-V虚拟机单独限速
Hyper-V本身不提供图形化限速界面,但Windows 10/11专业版及以上、Server 2016+均内置了可编程的虚拟交换机QoS策略,支持按虚拟网卡(vNIC)精确控制单台虚拟机的出站速率。
方法一:通过Hyper-V管理器识别目标vNIC名称
打开Hyper-V管理器 → 右键目标虚拟机 →【设置】→ 左侧展开【网络适配器】→ 记下右侧“网络连接”显示的名称(如“Ethernet0”或“vSwitch-Prod”);
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
方法二:用PowerShell绑定出站带宽策略
以管理员身份启动PowerShell → 执行以下命令(将"VMName"替换为你的虚拟机名,"Ethernet0"替换为上一步记下的网卡名):
Get-VMNetworkAdapter -VMName "VMName" | Set-VMNetworkAdapter -OutboundKbps 20480
这条命令将该虚拟机的出站带宽硬性限制为20Mbps(20480 KBps)。数值设为0表示不限速;设为1024即1Mbps。注意:【该命令仅限制出站(上传)流量,入站(下载)不受影响】;
方法三:验证策略是否激活
执行Get-VMNetworkAdapter -VMName "VMName" | fl * → 查看OutboundKbps字段是否显示你设定的值。若仍为-1,说明命令未生效,常见原因是虚拟机处于关机状态——请先启动虚拟机再运行命令。
借助NetLimiter监控并动态干预虚拟机进程流量
当VMware或Hyper-V虚拟机内运行的是Windows系统,且你需限制其中某个具体程序(如OneDrive、WSUS、Steam客户端)而非整台虚拟机时,必须进入虚拟机内部部署限速工具。此时宿主机层面的策略已失效,需在虚拟机OS中操作。
在虚拟机内部(不是宿主机)安装NetLimiter 4 → 启动后切换至【Processes】页 → 找到目标进程(如“svchost.exe”承载的Windows Update服务)→ 右键【Edit Rules】→ 勾选Enable rule → 分别设置Download limit与Upload limit(例如设为512 KB/s)→ 点击OK;
该规则立即生效,无需重启进程。NetLimiter会接管TCP/IP协议栈,对匹配进程的所有网络请求强制节流。注意:虚拟机需开启管理员权限运行NetLimiter,否则驱动无法加载,限速无效。










