Articles

magnific0 / wondershaper

Copyright

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

Se ChangeLog för information om författarnas individuella bidrag.

Om

Wonder Shaper är ett skript som gör det möjligt för användaren att begränsa bandbredden för en eller flera nätverkskort. Det gör det genom att använda iproutes tc-kommando, men förenklar dess funktion avsevärt. Wonder Shaper släpptes först av Bert Hubert 2002, men den ursprungliga versionen saknade ett kommandoradsgränssnitt, från och med version 1.2 lades denna funktion till. Från och med version 1.3 används HTB-köer i stället för CBQ, vilket möjliggör bättre bandbreddshantering på höghastighetslänkar (över tio megabit). I version 1.4 infördes en förbättrad ingress shaping-metod och möjligheten att begränsa antingen nedåt eller uppåt (båda är fortfarande möjliga också). Den ursprungliga README är ett ganska långt dokument och sparas under README.old, för dem som vill ha lite mer bakgrundsinformation. Förutom eventuella anmärkningar om drift anses detta dokument vara uppdaterat.

Installation

Skaffa wondershaper

Det rekommenderas att klona GitHub-repositoriet för wondershaper så att du kan dra in nya uppdateringar när som helst (om de finns tillgängliga). Öppna en ny terminal och klona arkivet med hjälp av

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

Detta kommer att klona wondershaper i din nuvarande mapp i en ny mapp som heter wondershaper. Gå nu in i mappen med hjälp av

cd wondershaper

Using wondershaper

Du kan köra wondershaper (som vilken användare som helst med tillräckliga behörigheter) utan installation och sluta följa instruktionerna vid detta tillfälle. Visa bruksanvisningarna för wondershaper genom att skriva

./wondershaper -h

Programmet beskriver alla tillgängliga alternativ för hur man använder wondershaper. Nästa steg är att välja ett gränssnitt som du vill forma. Du kan visa alla tillgängliga gränssnitt genom att skriva

ip addr show

Bemärk att på äldre system kanske det här kommandot inte är tillgängligt. I detta fall bör du köra ifconfig i stället.

Identifiera det nätverksgränssnitt som du vill forma. Namnen skiljer sig åt per system.

I följande exempel begränsas ett trådlöst gränssnitt till en uppladdning på 4 Mbps och en nedladdning på 8 Mbps.

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

Om du får meddelanden som talar om att RTNETLINK answers: Operation not permitted ditt användarkonto inte har tillräckliga privilegier. Försök i så fall:

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

Systeminstallation (valfritt)

En makefile-fil tillhandahålls för enkel installation. Standardplaceringen för wondershaper är i /usr/bin. Om du vill installera till ditt system kan du köra:

sudo make install

Du kan kontrollera att wondershaper installerades korrekt genom att skriva:

which wondershaper

Detta bör ge /usr/bin/wondershaper. Du kan följa samma instruktioner som förklaras i avsnittet ”Användning av wondershaper”, men istället för att köra den lokala versionen av programmet kör du nu systemversionen genom att ta bort ./ i början av varje kommando. Till exempel för att visa hjälpinstruktionerna igen kör:

wondershaper -h

Persistent användning av wondershaper (valfritt)

Istället för att använda kommandoradsalternativen för att ställa in hastigheterna och gränssnittet som tidigare visats, är det nödvändigt att ställa in dessa parametrar i konfigurationsfilen wondershaper.conf. Du kan redigera denna fil med hjälp av din favorittextredigerare (vim i exemplet nedan) på följande sätt:

sudo vim /etc/systemd/wondershaper.conf

För att se till att wondershaper återaktiveras vid omstart finns en systemd-tjänstfil. Aktivera först wondershaper som en systemd-tjänst med hjälp av:

sudo systemctl enable --now wondershaper.service

På så sätt aktiveras wondershaper med dina inställningar vid omstart.

Användning

 wondershaper 

Följande kommandoradsalternativ är tillåtna:

  • -h Visa hjälp

  • -a <adapter> Ställ in adapter

  • -d <rate> Ställ in maximal nedladdningshastighet (i Kbps) och/eller

  • -u <rate> Ställ in maximal uppladdningshastighet (i Kbps)

  • -p Använd förinställningarna i /etc/systemd/wondershaper.conf

  • -c Rensa gränserna från adapter

  • -s Visa aktuell status för adapter

De olika lägena är:

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

Vissa exempel:

 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