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.
       
 (HTM) 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.