How I can limit Download/Upload bandwidth for:
- Entire OS.
- One network interface.
- Single application.
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.
Sign up to join this communityAlthough this is an old question, I came across this when looking for an answer to the same question. The OS and interface limits are already addressed in an earlier answer, so here is a way to set up application specific limits. Use an application called trickle. So do sudo apt-get install trickle
. You can limit upload/download for a specific app by running
trickle -u (upload limit in KB/s) -d (download limit in KB/s) application
This will launch the application with the specified limits. You can also specify "smoothing" time, so that trickle samples over the desired time period in case your application has bursts of bandwidth consumption and you'd like the bursts to be allowed so long as the average is within your specifications.
trickle: Could not reach trickled, working independently: No such file or directory
. You can remove this warning by executing trickle in standalone mode with trickle -s
.
Mar 17, 2013 at 23:38
Limiting single interface is easy, but global rate limits need more complex rules as do application based rules. I'm not saying that it can't be done, but it requires quite a bit digging in to the internals of the networking.
Here is a quick How to on setting up a per interface limit
If you really want to set up application based rules, you should look in to some firewall framework, like shorewall, which have helper features to configure shaping. Even with these tools, it requires quite bit of forethought and testing to get it in to place. Doing something like this ad-hoc is not yet quite that easy.
wondershaper eth0 1000 1000
has no internet bandwidth. I need to limit all of the eth0 bandwidth not only specific applications. how can in do that?
If you want to limit bandwidth for a specific IP address, you can use this:
tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:10 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:11 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:12 htb rate 5000kbps
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.105 flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.106 flowid 1:11
wondershaper
problem in Ubuntu 17.10, which may be similar to what is happening to @Zeromatiker in Ubuntu 17.04: bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421