2010-04-28 22:55:18 +0000 2010-04-28 22:55:18 +0000
86
86

如何限制Windows上程序的带宽?

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

答案 (4)

22
22
22
2012-02-18 20:40:44 +0000

我使用的是 Net Limiter ,它有一个免费版本, 但不幸的是,你需要为限制功能付费

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

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

> 除了这个独特的功能,Netlimiter还提供了一套全面的互联网统计工具。

9
9
9
2015-09-10 18:35:38 +0000

有很好的理由将 “面向互联网的路由器 "方法看作是管理整个网络的方法–然而,由于最初的问题是特定的,用户很可能是网络上唯一的计算机,这是一个次要的问题。

NetBalancer

  • *

根据其他顶级答案之一,有一段时间我测试了 NetBalancer 。它真的很好用–而且很容易配置。

NetBalancer可以在他们的网页上购买,价格约为50美元。试用版/免费版允许你监控连接–但不允许节流。

NetLimiter


另一种选择是 NetLimiter 。它有一个免费的试用期–但精简版的起价约为20美元,专业版约为30美元。NetLimiter是许多SysAdmins久经考验的应用程序。

当NetLimiter的试用期结束后,在你购买许可证之前,它将成为一个仅用于监控的工具,不再支持节流。这仍然是有用的–但不适合这个用例。

使用路由器(附带解释为什么这不是一个好的方法)。


虽然使用智能/高配置的路由器通常是更好的_整体网络管理方法,但@ZaB的回答中并没有解释这与原始问题之间的脱节。原来的问题是特别问到一个进程–路由器无法可靠地识别它。

在这一端接近有用的一个变化是,如果一个应用程序只在特定的通道或流量类型上进行通信,很容易被路由器识别。下面是一个EA的Origin下载的例子。

Origin目前使用Akamai。通常情况下,我将自动下载/更新设置为随时运行–但我更希望在我忙于做其他更重要的事情时,它不要使用所有的线路容量。Origin恰好在这个排序事情非常糟糕,因此它不支持下载计划或下载节流。目前我的桌面正在使用 "a1750.d.akamai.net "服务器下载一款游戏。MikroTik路由器(智能路由器的一个例子)可以注意到这个DNS名被使用了(它将在DNS缓存中与IP地址一起),并可以临时配置将目标服务器的IP地址添加到 "地址列表 "中。所有通往/来自地址列表的流量都可以被添加到一个节流队列中,从而在技术上对单个应用程序进行节流。

上述方法是天真的。EA可以在任何时候更改服务器名称和使用的协议,或者使用Akamai基础设施的其他无关服务可能会被无意中扼杀。现在,我那条闪亮的新规则变得毫无用处,而且被破坏了。

3
3
3
2018-11-18 10:38:36 +0000

您可以使用Windows组策略来节制任何进程的带宽。转到

  • 开始菜单 \ 运行 > gpedit.msc
  • 计算机/用户配置(选择一个或其他) > Windows设置 \ > Policy-based QoS

在这里你可以看到当前的策略并创建新的策略。

  • 右键点击 “Policy-based QoS "或者进入 "Action"(操作)> Create new policy… (创建新策略)。
  • 然后按照向导创建一个新的节流策略。

向导允许你创建一个策略来节流带宽。

  • 计算机上的所有内容
  • 特定进程
  • 特定网站(仅适用于使用 HTTP 协议的应用程序)

您的策略可以通过以下方式进行过滤:

  • TCP/IP 协议。

  • TCP或UDP协议

  • 源/目的IP

  • 源/目的端口

你也可以在Powershell中创建这些策略,运行:

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

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

2
2
2
2016-10-20 10:05:21 +0000

这里是我的穷人节流:

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

你需要 PsSuspend.exe (我把这个文件放到C:\tools\sysinternals)和一个批处理文件(例如)慢。 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)