如何限制网络带宽?


74

我们正在远程服务器上托管一个应用程序。我们需要在有限的网络带宽上进行测试(针对Internet访问不良的用户)。

我可以限制我的互联网带宽吗?例如:每秒128 KB。

Answers:


67

您可以使用tc位于http://linux.die.net/man/8/tc的名为手册页的命令来限制接口上的网络带宽。

对于简单的脚本,请尝试wondershaper

使用tc的示例: tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540


6
链接到atmail.com提示输入我的用户名/密码... :(


亡羊补牢,如果你要去使用busybox的路由器更好的方法是更好的后期tc命令,你可以在这里看看马克的帖子mark.koli.ch/... 的OpenVZ的wiki有更多的例子openvz.org/Traffic_shaping_with_tc
nwgat

看起来也可以用iptables限制带宽(您可以根据需要编辑答案):serverfault.com/questions/52027/…–
baptx

62

如先前的回答所述,Wondershaper可以轻松完成这项工作。我包括Jwalanta Shrestha的上述链接中的信息

apt-get install wondershaper

wondershaper-限制特定接口带宽的简便工具。

$ sudo wondershaper {interface} {down} {up}

{down}和{up}是带宽,单位为kpbs

因此,例如,如果您要将接口eth1的带宽限制为下行256kbps和上行128kbps,

$ sudo wondershaper eth1 256 128

为了清除限制,

$ sudo wondershaper clear eth1 

2
理想情况下,您应该只编辑原始答案,而不要添加新答案。这是标准政策。无论如何,您的答案为+1,因为它确实为答案添加了信息。
shivams

2
如果您要绑定移动数据并具有合理使用限制(并且之后必须购买新捆绑包,Lycamobile的情况),这将非常有用。在YouTube等视频流媒体网站上,如果您有足够的带宽,则会直接加载整个视频。如果限制带宽,视频将自动切换到低分辨率并仅下载您正在观看的内容,如果您不想观看所有内容,则会保存数据。
baptx '16

2
对于上载大文件也很有用,因为它不仅限制带宽,而且可以优先处理流量。这样,在上传10gb文件时,您仍然可以使用SSH。
PeterM


10

基于某些标准限制网络资源是QoS的主题。有几种不同的方法可以控制Linux系统上的用户流量。

Bert Hubert撰写了有关Linux上高级路由技术和流量控制的很好的方法指南


2
您是指其中的特定部分吗?
rogerdpack 2015年

1
如果您不想更改系统设置,只需安装squid3代理,然后通过代理设置“有限”应用即可。对于cli应用程序,您可以设置tosocks或proxychains,对于沉重的GUI应用程序,您也可以安装Fiddler mono,所以是的...有一些方法可以控制所有内容:)
erm3nda

(这是仅链接的答案)
Konrad Gajewski



6

您也可以使用iptables hashlimit模块。这是一个简单的示例:

iptables -A FORWARD -m hashlimit --hashlimit-512kb / sec以上--hashlimit-burst 1mb --hashlimit-mode srcip,dstip --hashlimit-name bwlimit -j DROP

该规则将通过FORWARD链的流量限制为512kb / sec,每个源和目标对的突发流量为1mb。

有关更多信息,请参见iptables手册的hashlimit部分。

http://ipset.netfilter.org/iptables-extensions.man.html

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.