Comment limiter la bande passante du réseau?

74

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.

fiction
la source

Réponses:

68

Vous pouvez limiter la bande passante du réseau sur l'interface à l'aide de la commande appelée tcPage de manuel disponible à l' adresse 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

Nikhil Mulley
la source
6
Lien vers l'invite atmail.com pour l'autorisation du nom d'utilisateur / du mot de passe pour moi ... :(
Ash le
1
Vous pouvez accéder au contenu atmail ici: web.archive.org/web/20130719031908/http://atmail.com/kb/2009/…
Tom Saleeba
mieux vaut tard que jamais si vous allez utiliser un routeur busybox, une meilleure méthode est la tccommande, vous pouvez consulter le post de mark ici mark.koli.ch/… le wiki openvz a plus d'exemples openvz.org/Traffic_shaping_with_tc
nwgat le
On dirait qu'il est également possible de limiter la bande passante avec iptables (vous pouvez éditer la réponse si besoin est): serverfault.com/questions/52027/…
baptx
62

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

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

$ sudo wondershaper {interface} {down} {up}

les {down} et {up} sont en 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 
Eden
la source
2
Idéalement, vous devriez simplement avoir modifié la réponse originale au lieu d’en ajouter une nouvelle. C'est la politique standard. Quoi qu'il en soit, +1 pour votre réponse, car il ajoute des informations aux réponses.
Shivams
2
Ceci est très utile si vous connectez des données mobiles et que vous avez une limite d'utilisation équitable (et vous devez acheter de nouveaux forfaits après, le cas de Lycamobile). Sur les sites Web de diffusion vidéo tels que YouTube, la vidéo entière est directement chargée si vous disposez de suffisamment de bande passante. Si vous limitez la bande passante, la vidéo bascule automatiquement en basse résolution et ne télécharge que ce que vous regardez, ce qui enregistre les données si vous ne souhaitez pas tout regarder.
baptx
2
Utile également pour le téléchargement de gros fichiers, car il limite non seulement la bande passante, mais donne également la priorité au trafic. Ainsi, lorsque vous téléchargez un fichier de 10 Go, vous pouvez toujours utiliser SSH.
PeterM
5
Wondershaper est très désuet: Wondershaper Must Die (Bufferbloat.net)
Niklas Holm
10

La limitation des ressources réseau en fonction de certains critères fait l’objet de la qualité de service . Il existe différentes manières de contrôler le trafic utilisateur sur les systèmes Linux.

Il existe un bon tutoriel sur les techniques de routage avancées et le contrôle du trafic sur Linux par Bert Hubert.

Emre Yazici
la source
2
Vous référiez-vous à une section particulière?
rogerdpack
1
Si vous ne souhaitez pas modifier les paramètres du système, installez simplement le proxy squid3, puis définissez votre application "limitée" via un proxy. Pour les applications de cli, vous pouvez définir des chaînes torsadées ou des chaînes de proxy, et pour les applications de type GUI lourdes, vous pouvez également installer Fiddler mono, alors oui ... il existe des moyens de tout contrôler :)
erm3nda
(Ceci est une réponse uniquement en lien)
Konrad Gajewski
7

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

Ulrich Schwarz
la source
6

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

Ammar Alammar
la source
6

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

iptables -A FORWARD -m hashlimit --hashlimit-supérieur à 512ko / sec --hashlimit-burst 1mb --hashlimit-mode srcip, dstip --hashlimit-name bwlimit -j DROP

Cette règle limite le trafic qui traverse la chaîne FORWARD à 512 ko / s avec une rafale de 1 Mo pour chaque paire source / destination.

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

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

Ibrahim
la source