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.
What are QoS, TC and Filters on Linux
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.