我使用的是 Net Limiter ,它有一个免费版本, 但不幸的是,你需要为限制功能付费。
NetLimiter是一款专为Windows设计的终极互联网流量控制和监控工具。你可以使用NetLimiter为应用程序甚至是单个连接设置下载/上传传输速率限制,并监控其互联网流量。
除了这个独特的功能,Netlimiter还提供了一套全面的互联网统计工具。它包括实时的流量测量和长期的每个应用程序的互联网流量统计
有很好的理由将 “面向互联网的路由器 "方法看作是管理整个网络的方法–然而,由于最初的问题是特定的,用户很可能是网络上唯一的计算机,这是一个次要的问题。
根据其他顶级答案之一,有一段时间我测试了 NetBalancer 。它真的很好用–而且很容易配置。
NetBalancer可以在他们的网页上购买,价格约为50美元。试用版/免费版允许你监控连接–但不允许节流。
另一种选择是 NetLimiter 。它有一个免费的试用期–但精简版的起价约为20美元,专业版约为30美元。NetLimiter是许多SysAdmins久经考验的应用程序。
当NetLimiter的试用期结束后,在你购买许可证之前,它将成为一个仅用于监控的工具,不再支持节流。这仍然是有用的–但不适合这个用例。
虽然使用智能/高配置的路由器通常是更好的_整体网络管理方法,但@ZaB的回答中并没有解释这与原始问题之间的脱节。原来的问题是特别问到一个进程–路由器无法可靠地识别它。
在这一端接近有用的一个变化是,如果一个应用程序只在特定的通道或流量类型上进行通信,很容易被路由器识别。下面是一个EA的Origin下载的例子。
Origin目前使用Akamai。通常情况下,我将自动下载/更新设置为随时运行–但我更希望在我忙于做其他更重要的事情时,它不要使用所有的线路容量。Origin恰好在这个排序的事情非常糟糕,因此它不支持下载计划或下载节流。目前我的桌面正在使用 "a1750.d.akamai.net "服务器下载一款游戏。MikroTik路由器(智能路由器的一个例子)可以注意到这个DNS名被使用了(它将在DNS缓存中与IP地址一起),并可以临时配置将目标服务器的IP地址添加到 "地址列表 "中。所有通往/来自地址列表的流量都可以被添加到一个节流队列中,从而在技术上对单个应用程序进行节流。
上述方法是天真的。EA可以在任何时候更改服务器名称和使用的协议,或者使用Akamai基础设施的其他无关服务可能会被无意中扼杀。现在,我那条闪亮的新规则变得毫无用处,而且被破坏了。
您可以使用Windows组策略来节制任何进程的带宽。转到
在这里你可以看到当前的策略并创建新的策略。
向导允许你创建一个策略来节流带宽。
您的策略可以通过以下方式进行过滤:
TCP/IP 协议。
TCP或UDP协议
源/目的IP
源/目的端口
你也可以在Powershell中创建这些策略,运行:
New-NetQosPolicy -Name "FTP" -AppPathNameMatchCondition "ftp.exe" -ThrottleRateActionBitsPerSecond 1MB
尽管这可能需要管理员权限,而且似乎有一个错误,这样创建的策略不会出现在GUI中。
这里是我的穷人节流:
它并不完全限制带宽,而是暂停/恢复占用带宽的过程,从而为其他应用释放一些带宽。而且是免费的!
你需要 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)