Nowadays many of the applications we use to upload or download files In the net, they usually provide us with an option that allows us to set limits how much width of our network they can use. For example, in web browsers that mostly include their own download manager, this allows us to set the speed at which downloads can be made, which in most cases are KB / s or also MB / s.
Another clear example that we have for this is Steam, which allows us to adjust the download speed of the games, this in order that while we have an online game, it does not affect it while other titles are downloaded in the background .
Of this type of examples we can give many, But what happens when an application or even a system process does not provide us with this option. Here it is necessary to carry out a little research in the user manual of the application or for a process, it is necessary to know if it is possible to limit the use of bandwidth with some command or application.
For this problem, TrafficToll arises, which is described as the NetLimiter (Windows only) for Linux.
In the developer's description, it tells us that TrafficToll's approach is to limit the download and upload bandwidth globally per interface and per process, even during the execution time of the process.
It also mentions that settings can be easily adjusted and new limits can be applied at any point, unlike similar tools that can only apply fixed global limits to the interface, certain ports, or require you to start the process through them (and thus restart the target process) to change the ports. limits).
In short, the program simplifies the installation of bandwidth limits in the context of individual local applications, as well as processes already running on the system.
For example, you can reduce the bandwidth for one program and increase it for another program or process on the system.
This process, it is done with the help of settings that are defined in a plain text configuration file. In which inbound and outbound traffic is limited by the IFB (Intermediate Function Block) module, which replaced the iptables IMQ module.
This file is very easily defined, Taking the example of the developer we can see the structure of this.
Where the total limits of the bandwidth we have are established, that is, at what download and upload speed we are allowed with our provider.
After that, all those applications and processes that will be controlled by TrafficToll will be included and in it we will establish the limit of the "total" bandwidth that it can use.
And finally you have to place the path of the application or process binary that is used to execute said program or process.
# Global limits download: 500kbps upload: 100kbps # Matched process limits processes: Vivaldi: download: 100kbps match: - exe: /opt/vivaldi/vivaldi-bin Discord: download: 300kbps # This won't work, the specified upload exceeds the global upload, it will # be 100kb/s max upload: 200kbps match: - exe: /opt/discord/Discord
As you will see, it is a fairly simple file.
How to install TrafficToll on Linux?
The installation of TrafficToll in any Linux distribution is quite simple and above all it does not require a graphical environment as such since it is a CLI application, that is to say. It runs from the command line and does not require a graphical interface for its operation.
For the installation, It only asks us as a requirement to have Python installed and your package manager PIP, in the system.
As we do the installation with the help of PIP by running the following command in a terminal:
sudo pip install traffictoll
And that's it, we can use this application. The execution of TrafficToll is done as root and we must indicate our network interface and the path of the configuration file of the previously described file.
# tt device config # tt eth0 archivo-configuracion.yaml
If you want to know more about it, you can consult the following link.