Wie kann ich die Netzwerkbandbreite begrenzen?

74

Wir hosten eine Anwendung auf einem Remote-Server. Wir müssen es mit einer begrenzten Netzwerkbandbreite testen (für Benutzer mit schlechtem Internetzugang).

Kann ich meine Internetbandbreite begrenzen? Zum Beispiel: 128 KB pro Sekunde.

Fiktion
quelle

Antworten:

67

Sie können die Netzwerkbandbreite auf der Benutzeroberfläche mithilfe des Befehls tcManpage unter http://linux.die.net/man/8/tc drosseln

Versuchen Sie für ein einfaches Skript Wunderformer .

Ein Beispiel für die Verwendung von tc: tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540

Nikhil Mulley
quelle
6
Link zu atmail.com Eingabeaufforderung für Benutzername / Passwort-Autorisierung für mich ... :(
Ash
1
Zum atmail-Inhalt gelangen Sie hier: web.archive.org/web/20130719031908/http://atmail.com/kb/2009/…
Tom Saleeba
besser spät als nie , wenn Ihr gonna ein Busybox - Router eine bessere Methode der ist verwenden tcBefehl, Sie Post überprüfen Markierung kann hier mark.koli.ch/... das OpenVZ Wiki weitere Beispiele hat openvz.org/Traffic_shaping_with_tc
nwgat
Es sieht so aus, als ob es auch möglich ist, die Bandbreite mit iptables zu begrenzen (Sie können die Antwort bei Bedarf bearbeiten): serverfault.com/questions/52027/…
baptx
62

Wie bereits in der vorherigen Antwort erwähnt, erledigt wondershaper die Arbeit problemlos. Ich schließe die Informationen aus dem obigen Link von Jwalanta Shrestha ein

apt-get install wondershaper

wondershaper - Ein einfaches Tool, um die Bandbreite einer bestimmten Schnittstelle zu begrenzen.

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

Die Angaben {down} und {up} geben die Bandbreite in kpbs an

Wenn Sie beispielsweise die Bandbreite der Schnittstelle eth1 auf 256 kbps Downlink und 128 kbps Uplink beschränken möchten,

$ sudo wondershaper eth1 256 128

Um das Limit zu löschen,

$ sudo wondershaper clear eth1 
Eden
quelle
2
Idealerweise sollten Sie nur die ursprüngliche Antwort bearbeitet haben, anstatt eine neue hinzuzufügen. Dies ist die Standardrichtlinie. Wie auch immer, +1 für Ihre Antwort, denn es werden Informationen zu den Antworten hinzugefügt.
Shivams
2
Dies ist sehr nützlich, wenn Sie mobile Daten anbinden und ein Fair-Use-Limit haben (und danach neue Bundles kaufen müssen, wie dies bei Lycamobile der Fall ist). Auf Video-Streaming-Websites wie YouTube wird das gesamte Video direkt geladen, wenn Sie über genügend Bandbreite verfügen. Wenn Sie die Bandbreite begrenzen, wird das Video automatisch auf eine niedrige Auflösung umgeschaltet und lädt nur das herunter, was Sie gerade ansehen. Dadurch werden Daten gespeichert, wenn Sie nicht alles ansehen möchten.
Taufe
2
Nützlich auch zum Hochladen großer Dateien, da hierdurch nicht nur die Bandbreite begrenzt, sondern auch der Datenverkehr priorisiert wird. Damit Sie beim Hochladen von 10 GB-Dateien immer noch SSH verwenden können.
PeterM
5
Wondershaper ist sehr veraltet: Wondershaper Must Die (Bufferbloat.net)
Niklas Holm
10

Das Begrenzen von Netzwerkressourcen basierend auf bestimmten Kriterien ist Gegenstand der QoS . Es gibt verschiedene Möglichkeiten, den Benutzerverkehr auf Linux-Systemen zu steuern.

Es gibt eine gute Anleitung zu fortgeschrittenen Routing-Techniken und Verkehrskontrolle unter Linux von Bert Hubert.

Emre Yazici
quelle
2
Haben Sie sich auf einen bestimmten Abschnitt darin bezogen?
Rogerdpack
1
Wenn Sie die Systemeinstellungen nicht ändern möchten, installieren Sie einfach den squid3-Proxy und stellen Sie dann Ihre "eingeschränkte" Anwendung über den Proxy ein. Für cli App Sie torsocks oder proxychains und für schwere GUI App einstellen können Sie auch Fiddler Mono installieren, also ja ... es gibt ein paar Möglichkeiten , um alles zu kontrollieren :)
erm3nda
(Dies ist eine Antwort nur auf Links)
Konrad Gajewski
7

Wenn Sie bereits irgendwo ein Apache-Setup haben, können Sie dieses verwenden mod_bw, das auch für Proxy-Verbindungen funktioniert (dh Apache leitet alles nur an den richtigen Server weiter, verlangsamt jedoch die Antworten.)

Ulrich Schwarz
quelle
6

Dummynet macht was Sie wollen und Sie können sogar die Latenz, den zufälligen Paketverlust und vieles mehr kontrollieren.

Ammar Alammar
quelle
6

Sie können auch das Modul iptables hashlimit verwenden. Hier ist ein einfaches Beispiel:

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

Diese Regel begrenzt den Datenverkehr, der die FORWARD-Kette durchläuft, auf 512 kBit / s mit 1 MB Burst für jedes Quell- und Zielpaar.

Weitere Informationen finden Sie im Abschnitt zu Hashlimits im Handbuch zu iptables.

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

ibrahim
quelle