Begrenzen Sie die ausgehende Bandbreite auf einer bestimmten Schnittstelle

32

Ich möchte den einfachsten Weg kennen, um ausgehende Bandbreite für eine Schnittstelle zu begrenzen. Ich möchte die ausgehende Portgeschwindigkeit begrenzen, damit die Dateiübertragung zwischen meinen Servern während der Geschäftszeiten nicht fehlschlägt.

Was ist die einfachste Lösung? Ich weiß, dass ich es gebrauchen könnte, iptablesaber ich suche nach einer einfachen Installation / Konfiguration.

Gabe
quelle
HTB funktioniert super. Sehr flexible Ratenbegrenzung. sourceforge.net/projects/htbinit

Antworten:

37

Ethtool

Sie können die Gesamtgeschwindigkeit des NIC-Ports mit ändern ethtool.

$ sudo ethtool -s eth0 speed 10

Dadurch wird der Port beispielsweise auf 10 MB festgelegt.

Wunderformer

Sie können auch das Tool verwenden, wondershaperum dies zu tun. HINWEIS: Die Geschwindigkeit sollte in Kilobit pro Sekunde angegeben werden.

$ sudo wondershaper eth1 downspeed upspeed

Beispielsweise:

$ sudo wondershaper eth0 10000 280

Rinnsal

Eine dritte Option ist Trickle . Trickle kann pro Programm von Benutzern oder als Daemon verwendet werden, der die Netzwerkkarte vollständig drosselt.

Benutzermodus - Riesel-Manpage

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

Drosselt man dafür 20K / s sowohl für den Aufwärts- als auch für den Abwärtsverkehr wget, wird alles andere nicht eingeschränkt.

Daemon-Modus - gelaufene Manpage

trickledKann im Daemon-Modus eine Gruppe von Programmen auf ein festes Bandbreitenlimit beschränken. Führen Sie zum Starten des Daemons den Befehl trickled aus:

$ sudo trickled -d 20 -u 20

pyshaper

Eine vierte Option ist pyshaper . Dies ist eine einzigartige Option, da sie eine grafische Benutzeroberfläche enthält und die Bandbreite im Laufe der Zeit dynamisch überwacht und festlegt. Auf der pyshaper-Manpage finden Sie weitere Informationen.

                                            pyshaper gui

Verweise

slm
quelle
Eine Begrenzung der Bandbreitennutzung der Problemanwendungen über Cgroups wäre wahrscheinlich auch dann sinnvoll, wenn ihr Kernel dies unterstützt.
Bratchley
wondershaper funktioniert nicht Ich weiß nicht warum (selbst `wondershaper eth0 1000 1000` hat keine Internetbandbreite wie` sudo trickled -d 20 -u 20`.) Ich muss eine Netzwerkschnittstelle einschränken. Bandbreite nicht nur bestimmte Anwendungen. wie kann man das machen
Arash
trickle hat bei mir nicht funktioniert, aber wondershaper hat es geschafft!
Peschü
1

Wondershaper wurde zuletzt im Jahr 2002 bearbeitet, funktioniert aber noch heute mit Fedora 21. Beachten Sie jedoch, dass nur einige Optionen als Argumente zur Verfügung stehen und Sie die Upload- / Download-Geschwindigkeit nicht wie hier angegeben in der Befehlszeile angeben können, zumindest nicht in Download-Version 1.1a, die am 16. April 2002 veröffentlicht wurde. Sie müssen sie bearbeiten die Datei, und es ist ein Shell-Skript. Nicht schwer für diejenigen, die eine kleine Muschel kennen.

Verwendung ist:

wondershaper (Hiermit stellen Sie Ihre Bandbreite gemäß den Werten in der Datei ein.)

wondershaper status
wondershaper stop

Sie können es verwenden, während der Link aktiv ist, was sehr schön ist.

Mike S
quelle
1

Eine weitere Option ist " iproute2 ", das als ausgereiftes und weit verbreitetes Tool zur Verkehrslenkung und -gestaltung erscheint. Ich fand es als RPM (wahrscheinlich auch viele andere Pakete, die ich nicht gesehen habe). Zum Zeitpunkt des Schreibens war die neueste Version 4.4.0, erstellt am 25. Januar 2016.

Wenn man sich die Konfigurationssyntax ansieht, scheint sie relativ einfach zu sein (wenn auch nicht so einfach wie ifconfigoder route).

Grün
quelle
6
In Ihrer Antwort geht es nicht darum, wie man iproute2 tatsächlich zur Begrenzung der ausgehenden Bandbreite verwenden würde. Können Sie bitte näher darauf eingehen?
Michael