web-dev-qa-db-fra.com

Comment limiter la bande passante réseau?

Nous hébergeons une application sur un serveur distant. Nous devons le tester avec une bande passante réseau limitée (pour les utilisateurs avec un mauvais accès Internet).

Puis-je limiter ma bande passante Internet? Par exemple: 128 Ko par seconde.

Cette question se concentre sur les solutions à l'échelle du système ou à l'échelle du conteneur sous Linux. Voir Limitation de l'utilisation de la bande passante Internet d'un shell spécifique pour des solutions spécifiques au processus ou à la session.

80
fiction

Vous pouvez limiter la bande passante réseau sur l'interface à l'aide de la commande appelée tc Page de manuel disponible sur http://linux.die.net/man/8/tc

Pour un script simple, essayez wondershaper .

Un exemple d'utilisation de tc: tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540

73
Nikhil Mulley

Comme indiqué dans la réponse précédente, Wondershaper fait le travail facilement. J'inclus les informations du lien ci-dessus par Jwalanta Shrestha

apt-get install wondershaper

wondershaper - Un outil simple pour limiter la bande passante d'une interface particulière.

$ Sudo wondershaper {interface} {down} {up}

les {down} et {up} sont la bande passante en kpbs

Ainsi, par exemple, si vous souhaitez limiter la bande passante de l'interface eth1 à 256 kbps en liaison descendante et 128 kbps en liaison montante,

$ Sudo wondershaper eth1 256 128

Pour effacer la limite,

$ Sudo wondershaper clear eth1 
70
Eden

La limitation des ressources réseau en fonction de certains critères fait l'objet de QoS . Il existe plusieurs façons de contrôler le trafic des utilisateurs sur les systèmes Linux.

Il y a un bon How-to about techniques avancées de routage et contrôle du trafic sur Linux par Bert Hubert.

10
Emre Yazici

Si vous avez déjà une configuration Apache quelque part, vous pouvez utiliser mod_bw , qui fonctionne également sur les connexions proxy (c'est-à-dire qu'Apache transmet tout simplement au serveur approprié, mais ralentit les réponses.)

7
Ulrich Schwarz

Vous pouvez également utiliser le module iptables hashlimit. Voici un exemple simple:

iptables -A FORWARD -m hashlimit --hashlimit-above 512kb/sec --hashlimit-burst 1mb --hashlimit-mode srcip, dstip --hashlimit-name bwlimit -j DROP

Cette règle limite le trafic passant par la chaîne FORWARD à 512 Ko/s avec une salve de 1 Mo pour chaque paire source et destination.

Consultez la section hashlimit du manuel iptables pour plus d'informations.

http://ipset.netfilter.org/iptables-extensions.man.html

6
ibrahim

Dummynet fait ce que vous voulez et plus encore, vous pouvez même contrôler la latence, la perte aléatoire de paquets et bien plus encore.

6
Ammar Alammar