Gibt es eine einfache Möglichkeit, die Bandbreitennutzung der Benutzer zu begrenzen?

14

Gibt es eine einfache Möglichkeit, die Bandbreitennutzung der Benutzer auf 10 kpbs zu beschränken? Andere Benutzer sollten nicht betroffen sein. Das Beste, was ich gefunden habe, ist tc, aber es scheint viel zu kompliziert zu sein, so etwas Einfaches zu tun.

Flauschige
quelle
Wenn die angegebene Antwort Ihr Problem löst (ich hoffe es), wählen Sie sie bitte als akzeptiert aus, damit dieses Problem als gelöst markiert werden kann.
heemayl

Antworten:

8

tc ist die richtige Antwort auf Ihre Konfigurationsanforderungen.
tc mag kompliziert erscheinen, weil es klassenbegeisterte (und weniger) Schüler verwaltet, was ihm unbegrenzte Flexibilität und Ebenen der Formung und Filterung verleiht.
Dies ist jedoch nicht der Fall. Da tc die im Kernel integrierten (oder modularen) Warteschlangen-Jünger nutzt, ist dies die einfachste / beste Möglichkeit, die Bandbreite auf Benutzerbasis zu begrenzen.
Hier ist ein Beispielsetup, ich habe es im Mbit-Format belassen, aber Sie können das Ratenmaß in kbit / s ändern.

tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1Mbit ceil 1Mbit prio 1

Für die iptables-Regel ändern Sie einfach den --uid-Besitzer in die UID des Benutzers, den Sie einschränken möchten. Die Dokumentation besagt, dass Sie anstelle der UID den Benutzernamen verwenden können. Haben Sie das nicht getestet?

iptables -t mangle -A POSTROUTING -o eth0 -p tcp -m owner --uid-owner 1000 -j CLASSIFY --set-class 1:1

Zu Ihrer Information, auch wenn Sie kein HTB benötigen, würde ich es empfehlen, basierend auf den verfügbaren Optionen und der Geschwindigkeit, auf die Sie sich beschränken.

cupojavashort
quelle