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. |