限制特定接口上的传出带宽


32

我想知道一种限制接口传出带宽的最简单方法。我想限制传出端口的速度,以使服务器之间的文件传输在繁忙时间内不会失败。

什么是最简单的解决方案?我知道我可以使用,iptables但是我正在寻找简单的安装/配置。


HTB运作良好。非常灵活的速率限制。sourceforge.net/projects/htbinit

Answers:


37

ethtool

您可以使用更改NIC端口的聚合速度ethtool

$ sudo ethtool -s eth0 speed 10

例如,这会将端口设置为10MB。

奇迹塑造者

您也可以使用该工具wondershaper执行此操作。注意:速度应以每秒千比特为单位。

$ sudo wondershaper eth1 downspeed upspeed

例如:

$ sudo wondershaper eth0 10000 280

第三个选项是Trickle。用户可以在每个程序中使用流,也可以将其用作完全限制NIC的守护程序。

用户模式-le流手册页

$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile

如此一来,上下流量的流量将降低20K / s wget,其他所有情况均不受限制。

守护程序模式- 手册页

在守护程序模式下,trickled可以将一组程序限制为固定的带宽限制。要启动守护程序,请运行以下命令:

$ sudo trickled -d 20 -u 20

pyshaper

第四个选项是pyshaper。这是一个唯一的选择,因为它包括GUI,并且可以随着时间动态监视和设置带宽。您可以查看pyshaper手册页以获取更多详细信息。

                                            pyshaper gui

参考文献


如果它们的内核支持,通过cgroup限制故障应用程序的带宽使用可能也是值得的。
布拉奇利

wondershaper无法正常工作,我也不知道为什么(即使wondershaper eth0 1000 1000也没有与sudo细流-d 20 -u 20`相同的互联网带宽。)我需要限制一个网络接口。带宽不仅限于特定应用。怎么做呢?
Arash

细流对我不起作用,但是奇迹塑造者成功了!
peschü

1

Wondershaper的最新编辑于2002年,但今天它仍可在Fedora 21上使用。但请注意,只有几个选项可用作参数,并且您不能按此处指定的那样在命令行上指定上载/下载速度-至少不是在2002年4月16日发布的下载版本1.1a中没有。您必须进行编辑文件,它是一个shell脚本。对于那些懂一点贝壳的人来说并不难。

用法是:

wondershaper (这将根据文件中的值设置您的带宽)

wondershaper status
wondershaper stop

您可以在链接处于活动状态时使用它,这很好。


1

另一个选项是“ iproute2 ”,它似乎是一种成熟且广泛使用的流量路由/整形工具。我发现它是RPM(可能还有许多其他软件包,我没有看)。撰写本文时,最新版本是4.4.0,建于2016年1月25日。

查看配置语法,它看起来相对简单(尽管不像ifconfigor 那样简单route)。


6
您的答案没有解决实际如何使用iproute2限制传出带宽的问题。你能详细说明一下吗?
迈克尔
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.