Articles

magnific0 / wondershaper

Copyright

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

Zobacz ChangeLog, aby uzyskać informacje o indywidualnym wkładzie autorów.

O

Wonder Shaper jest skryptem, który pozwala użytkownikowi ograniczyć przepustowość jednego lub więcej adapterów sieciowych. Robi to za pomocą polecenia tc w iproute, ale znacznie upraszcza jego działanie. Wonder Shaper został po raz pierwszy wydany przez Berta Huberta w 2002 roku, ale pierwotna wersja nie posiadała interfejsu wiersza poleceń, od wersji 1.2 funkcja ta została dodana. Od wersji 1.3 zamiast CBQ używane jest kolejkowanie HTB, co pozwala na lepsze zarządzanie pasmem na szybkich łączach (powyżej dziesięciu megabitów). W wersji 1.4 zaimplementowano ulepszoną metodę kształtowania ingresu oraz możliwość limitowania zarówno w dół jak i w górę (oba sposoby są nadal możliwe). Oryginalne README jest dość długim dokumentem i jest zapisane pod README.old, dla tych, którzy chcieliby uzyskać więcej informacji. Z wyjątkiem uwag na temat działania, ten dokument jest uważany za aktualny.

Instalacja

Uzyskiwanie wondershaper

Zaleca się sklonowanie repozytorium GitHub dla wondershaper, tak aby można było ściągać nowe aktualizacje w dowolnym momencie (jeśli są dostępne). Otwórz nowy terminal i sklonuj repozytorium za pomocą

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

To sklonuje wondershaper w twoim bieżącym folderze w nowym folderze o nazwie wondershaper. Teraz wejdź do folderu używając

cd wondershaper

Using wondershaper

Możesz uruchomić wondershaper (jako dowolny użytkownik z wystarczającymi uprawnieniami) bez instalacji i przestać podążać za instrukcjami w tym momencie. Pokaż instrukcje użycia wondershaper wpisując

./wondershaper -h

Program wyszczególnia wszystkie dostępne opcje jak używać wondershaper. Następnie musisz wybrać interfejs, który chcesz ukształtować. Możesz zobaczyć wszystkie dostępne interfejsy wpisując

ip addr show

Zauważ, że na starszych systemach ta komenda może nie być dostępna. W takim przypadku należy zamiast niego uruchomić ifconfig.

Zidentyfikuj interfejs sieciowy, który chcesz ukształtować. Nazwy różnią się w zależności od systemu.

W poniższym przykładzie interfejs bezprzewodowy jest ograniczony do wysyłania 4Mbps i pobierania 8Mbps.

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

Jeśli otrzymasz komunikaty, że RTNETLINK answers: Operation not permitted Twoje konto użytkownika nie ma wystarczających uprawnień. W takim przypadku spróbuj:

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

Instalacja systemu (opcjonalnie)

Dostarczono plik makefile dla łatwej instalacji. Domyślna lokalizacja dla wondershaper jest w /usr/bin. Jeśli chcesz zainstalować w swoim systemie możesz uruchomić:

sudo make install

Możesz sprawdzić czy wondershaper został zainstalowany poprawnie wpisując:

which wondershaper

To powinno zwrócić /usr/bin/wondershaper. Możesz wykonać te same instrukcje, jak wyjaśniono w sekcji „Używanie wondershaper”, ale zamiast uruchamiać lokalną wersję programu, uruchomisz teraz wersję systemową, usuwając ./ z początku każdej komendy. Na przykład, aby pokazać ponownie instrukcje pomocy uruchom:

wondershaper -h

Trwałe użycie wondershaper (opcjonalnie)

Zamiast używać opcji linii poleceń do ustawienia stawek i interfejsu, jak poprzednio pokazano, konieczne jest ustawienie tych parametrów w pliku konfiguracyjnym wondershaper.conf. Możesz edytować ten plik używając swojego ulubionego edytora tekstu (vim w poniższym przykładzie) w następujący sposób:

sudo vim /etc/systemd/wondershaper.conf

Aby upewnić się, że wondershaper jest reaktywowany przy ponownym uruchomieniu, dostarczany jest plik usługi systemd. Najpierw włącz wondershaper jako usługę systemd używając:

sudo systemctl enable --now wondershaper.service

W ten sposób wondershaper jest aktywowany z twoimi ustawieniami po ponownym uruchomieniu.

Użycie

 wondershaper 

Dozwolone są następujące opcje wiersza poleceń:

  • -h Wyświetl pomoc

  • -a <adapter> Ustaw adapter

  • -d <rate> Ustaw maksymalną szybkość pobierania (w Kbps) i/lub

  • -u <rate> Ustaw maksymalną szybkość wysyłania (w Kbps)

  • -p Użyj ustawień wstępnych w /etc/systemd/wondershaper.conf

  • -c Wyczyść limity z adaptera

  • -s Pokaż aktualny status adaptera

Różne tryby to:

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

Kilka przykładów:

 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

.