Limiter la bande passante sortante sur une interface spécifique

32

J'aimerais connaître le moyen le plus simple de limiter la bande passante sortante pour une interface. Je souhaite limiter la vitesse du port sortant afin que les transferts de fichiers entre mes serveurs n'échouent pas pendant les heures chargées.

Quelle est la solution la plus simple? Je sais que je pourrais l'utiliser iptablesmais je recherche une installation / configuration simple.

Gabe
la source
HTB fonctionne très bien. Limitation de taux très flexible. sourceforge.net/projects/htbinit

Réponses:

37

ethtool

Vous pouvez modifier la vitesse globale du port de la carte réseau à l'aide de ethtool.

$ sudo ethtool -s eth0 speed 10

Cela définira le port sur 10 Mo, par exemple.

merveille

Vous pouvez également utiliser l'outil wondershaperpour le faire aussi. REMARQUE: la vitesse devrait être en kilobits par seconde.

$ sudo wondershaper eth1 downspeed upspeed

Par exemple:

$ sudo wondershaper eth0 10000 280

ruisseler

Une 3ème option est Trickle . Trickle peut être utilisé par programme par les utilisateurs ou en tant que démon qui étrangle complètement la carte réseau.

Mode utilisateur - page de manuel de filet

$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile

Limitera 20K / s à la fois pour le trafic montant et descendant, pour le wgetreste, tout le reste ne sera pas limité.

Mode Daemon - page de manuel rampante

En mode démon, vous trickledpouvez limiter un groupe de programmes à une limite de bande passante fixe. Pour démarrer le démon, exécutez la commande filetée:

$ sudo trickled -d 20 -u 20

pyshaper

Une 4ème option est pyshaper . Il s'agit d'une option unique parmi les choix dans la mesure où il inclut une interface graphique et surveille et définit de manière dynamique la bande passante dans le temps. Vous pouvez consulter la page de manuel pyshaper pour plus de détails.

                                            pyshaper gui

Les références

slm
la source
Limiter l'utilisation de la bande passante des applications problématiques via des groupes de contrôle serait probablement également utile si leur noyau le prend en charge.
Bratchley
Wondershaper ne fonctionne pas, je ne sais pas pourquoi (même `Wondershaper Eth0 1000 1000` n'a pas de bande passante Internet identique à` Sudo Ramped -d 20 -u 20`.) Je dois limiter une interface réseau. bande passante non seulement des applications spécifiques. Comment peut-on faire ça?
Arash
filet n'a pas fonctionné pour moi, mais WonderShaper a fait le tour!
peschü
1

Wondershaper a été édité pour la dernière fois en 2002, mais il fonctionne toujours sur Fedora 21 aujourd'hui. Notez toutefois que seules quelques options sont disponibles en tant qu'arguments et que vous ne pouvez pas spécifier la vitesse de chargement / téléchargement sur la ligne de commande spécifiée ici, du moins, pas dans Download version 1.1a, publiée le 16 avril 2002. Vous devez modifier le fichier, et c'est un script shell. Pas difficile pour ceux qui connaissent un peu la coquille.

L'utilisation est:

wondershaper (Celui-ci définira votre bande passante en fonction des valeurs du fichier)

wondershaper status
wondershaper stop

Vous pouvez l'utiliser pendant que le lien est actif, ce qui est agréable.

Mike S
la source
1

Une autre option est « iproute2 », qui semble être un outil de routage / mise en forme du trafic mature et largement disponible. Je l'ai trouvé en tant que RPM (probablement beaucoup d'autres paquets aussi, je n'ai pas regardé). Au moment d'écrire ces lignes, la version la plus récente était la 4.4.0, construite le 25 janvier 2016.

En examinant la syntaxe de configuration, elle semble être relativement simple (mais pas aussi simple que ifconfigou route.)

vert
la source
6
Votre réponse n'indique pas comment on utiliserait réellement iproute2 pour limiter la bande passante sortante. Pouvez-vous élaborer s'il vous plaît?
Michael