如何在Windows中用命令行模拟低/特定带宽环境(含入站限流)
Windows系统下用命令行实现双向带宽限流(含入站)
Windows自带的QoS策略仅支持出站流量限制,要实现入站+出站的双向带宽控制,可通过以下两种内置方案实现:
方案1:利用Windows Filtering Platform (WFP) 配置入站限流
WFP是内核级网络过滤框架,可通过netsh命令创建入站流量限制规则:
操作步骤
- 备份当前WFP配置(可选,用于后续恢复):
netsh wfp show state > wfp_backup.xml
- 创建入站流量筛选规则(以限制所有入站到本地IP 192.168.1.100的流量为1Mbps为例):
netsh wfp add filter layer=FWPM_LAYER_INBOUND_TRANSPORT_V4 action=callout callout_id=FWPM_CALLOUT_QOS flow_condition=FWPM_CONDITION_IP_DESTINATION_ADDRESS match_type=FWP_MATCH_EQUAL value=192.168.1.100 protocol=ANY netsh wfp add filter layer=FWPM_LAYER_INBOUND_TRANSPORT_V4 action=callout callout_id=FWPM_CALLOUT_QOS flow_condition=FWPM_CONDITION_IP_SOURCE_ADDRESS match_type=FWP_MATCH_ANY protocol=ANY
- 绑定带宽限制策略到筛选器:
netsh qos add policy name="InboundLimit" bandwidth=1000000 priority=7
注:
bandwidth单位为bps,1000000即1Mbps;priority值越小优先级越高。
- 如需删除规则,导入备份配置即可恢复:
netsh wfp set state file=wfp_backup.xml
方案2:通过Hyper-V虚拟交换机实现双向带宽控制
若系统为Windows 10/11专业版及以上,可借助Hyper-V虚拟交换机实现全局双向带宽限制:
操作步骤
- 启用Hyper-V(未启用时执行):
dism /online /enable-feature /all /featurename:Microsoft-Hyper-V
执行后重启系统生效。
- 创建带带宽限制的虚拟交换机:
New-VMSwitch -Name "LimitedBWSwitch" -NetAdapterName "你的物理网卡名称" -MinimumBandwidthMode Absolute -MaximumBandwidth 2000000
参数说明:
NetAdapterName:替换为你的物理网卡名称(可通过netsh interface show interface查看)MaximumBandwidth:单位为bps,2000000即2Mbps
- 切换网络连接到虚拟交换机:
在系统设置中把默认网络适配器切换为LimitedBWSwitch,或用命令行启用:
netsh interface set interface "LimitedBWSwitch" admin=enable
此后所有通过该交换机的流量(入站+出站)都会被限制到指定带宽。
辅助:模拟低带宽附加场景
若需同时模拟高延迟、丢包等低带宽特性,可修改TCP参数:
# 设置初始重传超时为3000毫秒(模拟高延迟) netsh int tcp set global initial_rto=3000 # 启用CTCP拥塞控制算法(适配带宽受限环境) netsh int tcp set global congestionprovider=ctcp
内容的提问来源于stack exchange,提问作者Ayushi
相关产品推荐
相关产品推荐

