ethtool
You can change the aggregate speed of the NIC port using ethtool
.
$ sudo ethtool -s eth0 speed 10
NOTE: This will set the port to 10MB, for example, you cannot set an arbitrary speed using this method!
wondershaper
You can also use the tool wondershaper
to do it as well. NOTE: Speed should be in kilobits per second.
$ sudo wondershaper eth1 downspeed upspeed
For example:
$ sudo wondershaper eth0 10000 280
trickle
A 3rd option is Trickle. Trickle can be used per program by users or as a daemon that throttles the NIC completely.
User mode - trickle man page
$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile
Will throttle 20K/s for both up and down traffic for just this wget
, everything else will not be limited.
Daemon mode - trickled man page
In daemon mode, trickled
can limit a group of programs to a fixed limit of bandwidth. To start the daemon, run the trickled command:
$ sudo trickled -d 20 -u 20
pyshaper
A 4th option is pyshaper. It's a unique option among the choices in that it includes GUI and it dynamically monitors and sets the bandwidth over time. You can check out the pyshaper man page for more details.

References