是否可以保留(至少这么多带宽)或限制(不超过这么多带宽)某些进程或应用程序的网络使用量。或者,保留/限制一些用户和/或组的网络使用量?
我感兴趣的是……:限制特定进程 (PID) 的带宽。通过特定名称限制每个进程的带宽(例如,rtorrent 的每个实例不能使用超过 20kb/s 的带宽,但五个实例因此可以使用 100kb/s)。限制所有程序实例的使用(例如,rtrorrent 的所有实例不能使用超过 50kb/s 的带宽)。限制程序组的使用 - 无论是单个程序还是集体程序(例如,任何 - 或所有 - 网络浏览器(显然它们会在某处列出)不能使用超过 100kb/s 的带宽)。
附加信息:是否可以对每台计算机设置限制?我有两台计算机共享 Internet 连接,有时其中一台占用所有带宽。另一方面,有时其中一台计算机不使用带宽或使用很少的带宽,那么另一台计算机显然应该能够占用所有带宽。我只要为每台计算机设置大约一半的硬性限制就满足了;但更动态的方法,允许其中一台计算机在另一台计算机不使用时占用所有带宽,将是可取的。
我不知道什么是可能的或者如何做到的,这就是我问的原因。
当我使用 wget 或 bittorrent 客户端下载文件时,我受到网络浏览器超时的困扰,因此我想施加一些限制以确保浏览的能力。
答案1
有一个软件叫涓涓细流它的作用正是如此;它是一个用户空间带宽管理器/整形器。
尝试
trickle -d 20 rtorrent
答案2
这是可能的,但非常复杂。要完全控制,您需要使用 qdisc 和 iptables 来“塑造”网络流量。这种“网络塑造”是可以学习如何做到的最先进的技术之一。这个网站解释了相当多的过程:http://laddumishra.wordpress.com/2011/12/27/traffic-control-using-tc-in-linuxubuntu/
为了更方便,您可以使用 Wondershaper,但它没有提供哪些进程优先的选项,并且在某些版本的 Ubuntu 上运行会遇到麻烦。http://lartc.org/
总之,如果想让用户以简单的方式控制他们的网络流量,那么这个特定的功能似乎需要大量投资。