在Windows上限制程序带宽的方法?


85

Windows中是否有一种技术可以选择性地限制正在运行的进程的带宽?


3
这里有可以执行此操作的完整应用程序列表:Alternativeto.net/software/netbalancer
bgmCoder 2015年

NetBalencers的新更新不限制其声明所规定的程序,试用期仅为7天,您只能限制3个软件(当它决定要运行时),并且全套服务的费用高达50美元。甚至不用理会。

Answers:


21

我使用的是Net Limiter,它有一个免费版本,但不幸的是,您需要支付Limiting功能

NetLimiter是专为Windows设计的终极Internet流量控制和监视工具。您可以使用NetLimiter设置应用程序甚至单个连接的下载/上传传输速率限制,并监视其Internet流量。

除此独特功能外,Netlimiter还提供了一套全面的Internet统计工具。它包括实时流量测量和长期每个应用程序的互联网流量统计


8
否,允许流量限制的lite / pro版本不是免费的。
demonkoryu

相反,这一版本在Windows XP上效果很好。
Gserg 2013年

NetLimiter 4仍然具有限制功能,它是免费版本,但有时间限制。
Dan Atkinson

9

有充分的理由考虑使用“面向Internet的路由器”方法来管理整个网络-但是,由于最初的问题是特定的,用户很可能是网络上唯一的计算机,因此这是次要的问题。

网络平衡器


在其他最重要的答案中,有一段时间我测试了NetBalancer。它工作得很好-易于配置。

NetBalancer可以在其网页上购买,价格约为50美元。试用版/免费版允许您监视连接-但不允许进行限制。

网络限制器


替代方法是NetLimiter。它有一个免费试用期 -但精简版的价格约为20美元,专业版的价格约为30美元。NetLimiter是许多SysAdmin的久经考验的应用程序。

NetLimiter的试用期结束后,在您购买许可证之前,它将成为仅用于监视的工具-不再支持限制。这仍然有用-但不适用于此用例。

使用路由器(并解释为什么这不是此用例的好方法)。


虽然使用智能/高度可配置的路由器通常是更好的方法全人网络管理,原来的问题是脱节不@朱的回答解释。最初的问题是专门询问一个过程-路由器无法可靠地识别哪个过程。

在这一点上非常有用的一种变体是,如果应用程序仅通过路由器可以轻松识别的特定通道或通信类型进行通信。以下是EA的Origin下载示例:

Origin目前使用Akamai。通常,我会将自动下载/更新设置为随时运行-但我更希望在忙于执行其他更重要的事情时,它不会使用所有线路容量。产地恰好是非常糟糕的,在这个 排序事情,因此它不支持下载时间表或下载限制。目前,我的桌面正在使用服务器“ a1750.d.akamai.net”下载游戏。MikroTik路由器(智能路由器的示例)可以注意到使用了该DNS名称(它将位于具有IP地址的DNS缓存中),并且可以临时配置为将目标服务器的IP地址添加到“地址列表”中”。从地址列表到/来自地址列表的所有流量都可以添加到限制队列中,从而从技术上限制单个应用程序。

但是,上面的方法很幼稚。EA可以在任何时候更改服务器名称,使用的协议,或使用了Akamai的基础设施可能会无意中扼杀另一个不相关的服务。现在,我闪亮的新规则变得毫无用处并被打破了。


我不确定NetBalancer的免费版本是否仍然允许带宽限制。引用下载页面:“未注册的版本仅用作监视应用程序,不支持优先级或规则”。
Gras Double

叹。现在好奇什么时候改变了。自上次“刷新”游戏台式机以来,我还没有安装Origin。
zaTricky

2

这是我可怜的人的节流:

它并没有完全限制带宽,而是暂停/恢复带宽消耗过程,从而为其他应用释放了一些带宽。 而且是免费的!

您需要PsSuspend.exe(我将此文件放入C:\ tools \ sysinternals)和一个批处理文件(例如slow.bat):

@echo off
:START 
c:\tools\sysinternals\pssuspend.exe %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
c:\tools\sysinternals\pssuspend.exe -r %1 >NUL: 2>&1
timeout /T 1 /NOBREAK >NUL:
goto START

现在以管理员身份打开命令行,并以节流阀程序为参数运行批处理文件

slow.bat filetransfer.exe

(用您的程序名称替换filetransfer.exe)

如果完成,请按CTRL-C并取消该批处理。

如果程序仍在运行,请考虑恢复程序,以防您在暂停程序时中断了批处理:

c:\tools\sysinternals\pssuspend.exe -r filetransfer.exe

(用您的程序名称替换filetransfer.exe)


这并不能真正解决问题。这是一个单一的流程修复程序,您必须了解占用带宽的流程,并且不必主动使用它。
Dan Atkinson

1
如果您想“限制正在运行的进程的带宽”(就是这个问题),您知道该进程,对吗?而我占用所有带宽的进程尤其是上载(使我的互联网无法用于其他任何东西),甚至还有下载。我的“穷人节流”能完成这项工作:我可以上传并仍然使用互联网。是的-这不是一个完美的解决方案。它是针对穷人的-无需购买某些软件。
bebbo

1
我必须同意@ dan-atkinson。NetBalancer是一个很好的例子,其中免费版本可以在与此相同的用例中完美地运行。这种方法也有局限性:-需要繁琐/手动的步骤-无法指定带宽限制。-这种方法可以简单地将“稳定的”不需要的用法转换为不太理想的波峰和波谷。-应用程序将变得无响应/
延迟

我心中的怪胎想知道这是否真的是一种好而便宜的方法来完成任务,但超时时间要短得多(例如50毫秒)。因此会有很多暂停/取消暂停操作,但是体验可能会更流畅。我不知道暂停时间实际上是如何映射到降低的上载速率的,但是可以尝试一下...
PGR

1

您可以使用Windows组策略来限制任何进程的带宽。去:

  • 开始菜单>运行> gpedit.msc
  • 计算机/用户配置(选择一个或另一个)> Windows设置>基于策略的QoS

在这里,您可以通过以下方式查看当前策略并创建新策略:

  • 右键单击“基于策略的QoS”或转到“操作”>创建新策略...
  • 然后按照向导创建新的限制策略。

该向导允许您创建一个策略来限制以下任一带宽:

  • 电脑上的一切
  • 具体流程
  • 特定网站(仅适用于使用HTTP协议的应用程序)

然后可以通过以下方式过滤您的策略:

  • TCP或UDP协议
  • 来源/目的地IP
  • 源/目标端口

您还可以通过运行以下命令在Powershell中创建这些策略:

New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB

尽管这可能需要管理员权限,但是似乎存在一个错误,即这样创建的策略不会出现在GUI中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.