Articles

magnific0 / wondershaper

Copyright

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

Informace o jednotlivých příspěvcích autorů najdete v ChangeLogu.

O projektu

Wonder Shaper je skript, který umožňuje uživateli omezit šířku pásma jednoho nebo více síťových adaptérů. Využívá k tomu příkaz tc iproute, ale značně zjednodušuje jeho ovládání. Wonder Shaper poprvé vydal Bert Hubert v roce 2002, ale původní verze postrádala rozhraní příkazového řádku, od verze 1.2 byla tato funkce přidána. Od verze 1.3 se místo CBQ používá řazení do front HTB, což umožňuje lepší správu šířky pásma na vysokorychlostních (nad deset megabitů) linkách. Ve verzi 1.4 byla implementována vylepšená metoda ingress shaping a možnost omezovat buď směrem dolů, nebo nahoru (obojí je stále také možné). Původní README je poměrně obsáhlý dokument a je uložen pod názvem README.old pro ty, kteří by chtěli získat více základních informací. Kromě případných poznámek k provozu je tento dokument považován za aktuální.

Instalace

Získání wondershaperu

Doporučuje se klonovat repozitář GitHub wondershaperu tak, abyste si mohli kdykoli stáhnout nové aktualizace (pokud jsou k dispozici). Otevřete nový terminál a naklonujte repozitář pomocí příkazu

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

Tím naklonujete wondershaper ve své aktuální složce do nové složky s názvem wondershaper. Nyní vstupte do složky pomocí

cd wondershaper

Pomocí wondershaper

Můžete spustit wondershaper (jako libovolný uživatel s dostatečnými právy) bez instalace a přestat postupovat podle pokynů v tomto bodě. Zobrazte návod k použití programu wondershaper zadáním příkazu

./wondershaper -h

Program podrobně popisuje všechny dostupné možnosti, jak používat program wondershaper. Dále je třeba vybrat rozhraní, které chcete tvarovat. Všechna dostupná rozhraní zobrazíte zadáním příkazu

ip addr show

Poznamenejte, že ve starších systémech nemusí být tento příkaz k dispozici. V takovém případě byste místo něj měli spustit příkaz ifconfig.

Zadejte síťové rozhraní, které chcete tvarovat. Názvy se liší podle systému.

V následujícím příkladu je bezdrátové rozhraní omezeno na rychlost odesílání 4 Mb/s a stahování 8 Mb/s.

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

Pokud se zobrazí hlášení, že RTNETLINK answers: Operation not permitted váš uživatelský účet nemá dostatečná práva. V takovém případě zkuste:

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

Instalace systému (volitelná)

Pro snadnou instalaci je k dispozici soubor makefile. Výchozí umístění pro wondershaper je v /usr/bin. Pokud chcete instalovat do svého systému, můžete spustit:

sudo make install

Ověřit, zda byl wondershaper nainstalován správně, můžete zadáním:

which wondershaper

To by mělo vrátit /usr/bin/wondershaper. Můžete postupovat stejně, jak je vysvětleno v části „Použití wondershaperu“, ale místo spuštění místní verze programu nyní spustíte systémovou verzi odstraněním ./ ze začátku každého příkazu. Chcete-li například znovu zobrazit pokyny nápovědy, spusťte:

wondershaper -h

Trvalé použití wondershaperu (volitelné)

Místo použití voleb příkazového řádku pro nastavení sazeb a rozhraní, jak bylo uvedeno dříve, je nutné tyto parametry nastavit v konfiguračním souboru wondershaper.conf. Tento soubor můžete upravit pomocí svého oblíbeného textového editoru (vim v níže uvedeném příkladu) takto:

sudo vim /etc/systemd/wondershaper.conf

Pro zajištění opětovné aktivace wondershaperu při restartu je k dispozici soubor služby systemd. Nejprve povolte wondershaper jako službu systemd pomocí:

sudo systemctl enable --now wondershaper.service

Takto se wondershaper při restartu aktivuje s vaším nastavením.

Použití

 wondershaper 

Povoleny jsou následující volby příkazového řádku:

  • -h Zobrazit nápovědu

  • -a <adapter> Nastavit adaptér

  • -d <rate> Nastavit maximální rychlost stahování (v Kb/s) a/nebo

  • -u <rate> Nastavit maximální rychlost odesílání (v Kb/s)

  • -p Použít předvolby v /etc/systemd/wondershaper.conf

  • -c Vymazat limity z adaptéru

  • -s Zobrazit aktuální stav adaptéru

Různé režimy jsou:

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

Několik příkladů:

 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

.