Articles

magnific0 / wondershaper

Copyright

Copyright (c) 2002-2020 Bert Hubert [email protected], Jacco Geul [email protected], Simon Séhier [email protected], [email protected]

Siehe das ChangeLog für Informationen über die einzelnen Beiträge der Autoren.

Über

Wonder Shaper ist ein Skript, das es dem Benutzer ermöglicht, die Bandbreite eines oder mehrerer Netzwerkadapter zu begrenzen. Es verwendet dazu den tc-Befehl von iproute, vereinfacht aber dessen Bedienung erheblich. Wonder Shaper wurde erstmals 2002 von Bert Hubert veröffentlicht, aber der ursprünglichen Version fehlte eine Befehlszeilenschnittstelle, ab Version 1.2 wurde diese Funktion hinzugefügt. Ab Version 1.3 wird die HTB-Warteschlange anstelle von CBQ verwendet, was ein besseres Bandbreitenmanagement auf Hochgeschwindigkeitsverbindungen (über zehn Megabit) ermöglicht. In Version 1.4 wurde eine verbesserte Ingress-Shaping-Methode implementiert und die Möglichkeit, entweder nach unten oder nach oben zu begrenzen (beides ist auch weiterhin möglich). Die ursprüngliche README ist ein ziemlich langes Dokument und ist unter README.old gespeichert, für diejenigen, die mehr Hintergrundinformationen haben möchten. Abgesehen von Hinweisen zur Bedienung gilt dieses Dokument als aktuell.

Installation

Beschaffung von wondershaper

Es wird empfohlen, das GitHub-Repository von wondershaper zu klonen, so dass Sie jederzeit neue Updates einspielen können (falls verfügbar). Öffnen Sie ein neues Terminal und klonen Sie das Repository mit

git clone https://github.com/magnific0/wondershaper.git

Dadurch wird wondershaper in Ihrem aktuellen Ordner in einen neuen Ordner namens wondershaper geklont. Betreten Sie nun den Ordner mit

cd wondershaper

Mit wondershaper

Sie können wondershaper (als beliebiger Benutzer mit ausreichenden Rechten) ohne Installation ausführen und an dieser Stelle aufhören, den Anweisungen zu folgen. Zeigen Sie die Anweisungen zur Verwendung von wondershaper an, indem Sie

./wondershaper -h

eingeben. Als nächstes müssen Sie eine Schnittstelle auswählen, die Sie gestalten möchten. Sie können alle verfügbaren Schnittstellen sehen, indem Sie

ip addr show

eintippen. In diesem Fall sollten Sie stattdessen ifconfig ausführen.

Identifizieren Sie die Netzwerkschnittstelle, die Sie formen möchten. Die Namen unterscheiden sich je nach System.

Im folgenden Beispiel ist eine drahtlose Schnittstelle auf einen Upload von 4Mbps und einen Download von 8Mbps beschränkt.

./wondershaper -a wlp4s0 -u 4096 -d 8192

Wenn Sie Meldungen erhalten, dass RTNETLINK answers: Operation not permitted Ihr Benutzerkonto nicht über ausreichende Berechtigungen verfügt. Versuchen Sie in diesem Fall:

sudo ./wondershaper -a wlp4s0 -u 4096 -d 8192

Systeminstallation (optional)

Eine Makefile-Datei wird zur einfachen Installation bereitgestellt. Das Standardverzeichnis für wondershaper befindet sich in /usr/bin. Wenn Sie auf Ihrem System installieren möchten, können Sie Folgendes ausführen:

sudo make install

Sie können überprüfen, ob wondershaper korrekt installiert wurde, indem Sie Folgendes eingeben:

which wondershaper

Dies sollte /usr/bin/wondershaper zurückgeben. Sie können die gleichen Anweisungen wie im Abschnitt „Wondershaper verwenden“ befolgen, aber anstatt die lokale Version des Programms auszuführen, führen Sie jetzt die Systemversion aus, indem Sie das ./ am Anfang jedes Befehls entfernen. Um zum Beispiel die Hilfeanweisungen erneut anzuzeigen, führen Sie aus:

wondershaper -h

Dauerhafte Nutzung von wondershaper (optional)

Anstatt die Befehlszeilenoptionen zu verwenden, um die Raten und die Schnittstelle einzustellen, wie zuvor gezeigt, ist es notwendig, diese Parameter in der Konfigurationsdatei wondershaper.conf einzustellen. Sie können diese Datei mit Ihrem bevorzugten Texteditor (im Beispiel unten vim) wie folgt bearbeiten:

sudo vim /etc/systemd/wondershaper.conf

Um sicherzustellen, dass wondershaper beim Neustart reaktiviert wird, wird eine systemd-Dienstdatei bereitgestellt. Aktivieren Sie zunächst wondershaper als systemd-Dienst mit:

sudo systemctl enable --now wondershaper.service

So wird wondershaper beim Neustart mit Ihrer Einstellung aktiviert.

Verwendung

 wondershaper 

Die folgenden Kommandozeilenoptionen sind erlaubt:

  • -h Hilfe anzeigen

  • -a <adapter> Adapter einstellen

  • -d <rate> Maximale Downloadrate (in Kbps) und/oder

  • -u <rate> Maximale Uploadrate (in Kbps)

  • -p Die Voreinstellungen in /etc/systemd/wondershaper verwenden.conf

  • -c Lösche die Limits vom Adapter

  • -s Zeige den aktuellen Status des Adapters

Die verschiedenen Modi sind:

 wondershaper -a <adapter> -d <rate> -u <rate> wondershaper -c -a <adapter> wondershaper -s -a <adapter>

Einige Beispiele:

 wondershaper -a eth0 -d 1024 -u 512 wondershaper -a eth1 -d 94000 -u 94000 # could be used on a 100Mbps link wondershaper -a eth1 -u 94000 # only limit upload wondershaper -c -a eth0