| Title: How to set a system wide bandwidth limit on Linux systems
Author: Solène
Date: 06 February 2021
Tags: linux bandwidth
Description:
In these times of remote work / home office, you may have a limited
bandwidth shared with other people/device. All software doesn't
provide a way to limit bandwidth usage (package manager, Youtube videos
player etc...).
Fortunately, Linux has a very nice program very easy to use to limit
your bandwidth in one command. This program is « Wondershaper » and
is using the Linux QoS framework that is usually manipulated with "tc",
but it makes it VERY easy to set limits.
|
|
On most distributions, wondershaper will be available as a package with
its own name. I found a few distributions that didn't provide it
(NixOS at least), and some are providing various wondershaper versions.
To know if you have the newer version, a "wondershaper --help" may
provide information about "-d" and "-u" flags, the older version
doesn't have this.
Wondershaper requires the download and upload bandwidths to be set in
kb/s (kilo bits per second, not kilo bytes). I personally only know my
bandwidth in kB/s which is a 1/8 of its kb/s equivalent. My home
connection is 1600 kB/s max in download and 95 kB/s max in upload, I
can use wondershaper to limit to 1000 / 50 so it won't affect much my
other devices on my network.
```shell commands to run wondershaper, include comments
# my network device is enp3s0
# new wondershaper
sudo wondershaper -a enp3s0 -d $(( 1000 * 8 )) -u $(( 50 * 8 ))
# old wondershaper
sudo wondershaper enp3s0 $(( 1000 * 8 )) $(( 50 * 8 ))
```
I use a multiplication to convert from kB/s to kb/s and still keep the
command understandable to me. Once a limit is set, wondershaper can be
used to clear the limit to get full bandwidth available again.
```shell command to clear bandwidth limit, include comments
# new wondershaper
sudo wondershaper -c -a enp3s0
# old wondershaper
sudo wondershaper clear enp3s0
```
There are so many programs that doesn't allow to limit download/upload
speeds, wondershaper effectiveness and ease of use are a blessing. |