Articles

magnific0 / wondershaper

Copyright

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

Vedi il ChangeLog per informazioni sui singoli contributi degli autori.

Info

Wonder Shaper è uno script che permette all’utente di limitare la larghezza di banda di uno o più adattatori di rete. Lo fa usando il comando tc di iproute, ma ne semplifica notevolmente il funzionamento. Wonder Shaper è stato rilasciato per la prima volta da Bert Hubert nel 2002, ma la versione originale mancava di un’interfaccia a riga di comando, dalla versione 1.2 questa caratteristica è stata aggiunta. Dalla versione 1.3, l’accodamento HTB è usato al posto di CBQ, permettendo una migliore gestione della larghezza di banda su collegamenti ad alta velocità (sopra i dieci megabit). Nella versione 1.4 è stato implementato un metodo di ingress shaping migliorato e la possibilità di limitare sia verso il basso che verso l’alto (entrambi sono ancora possibili). Il README originale è un documento piuttosto lungo ed è salvato sotto README.old, per chi volesse qualche informazione in più. Eccetto le note sul funzionamento, questo documento è considerato aggiornato.

Installazione

Ottenere wondershaper

Si raccomanda di clonare il repository GitHub di wondershaper in modo da potervi inserire nuovi aggiornamenti in qualsiasi momento (se disponibili). Apri un nuovo terminale e clona il repository usando

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

Questo clonerà wondershaper nella tua cartella attuale in una nuova cartella chiamata wondershaper. Ora entra nella cartella usando

cd wondershaper

Usando wondershaper

Puoi eseguire wondershaper (come qualsiasi utente con permessi sufficienti) senza installazione e smettere di seguire le istruzioni a questo punto. Mostra le istruzioni d’uso di wondershaper digitando

./wondershaper -h

Il programma dettaglia tutte le opzioni disponibili su come usare wondershaper. Il prossimo passo è scegliere un’interfaccia che vuoi modellare. Puoi vedere tutte le interfacce disponibili digitando

ip addr show

Nota che sui vecchi sistemi questo comando potrebbe non essere disponibile. In questo caso dovresti invece eseguire ifconfig.

Identifica l’interfaccia di rete che vuoi modellare. I nomi differiscono a seconda del sistema.

Nel seguente esempio un’interfaccia wireless è limitata a un upload di 4Mbps e un download di 8Mbps.

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

Se ricevi messaggi che ti dicono che RTNETLINK answers: Operation not permitted il tuo account utente non ha privilegi sufficienti. In questo caso prova:

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

Installazione del sistema (opzionale)

Un file makefile fornito per una facile installazione. La posizione predefinita per wondershaper è in /usr/bin. Se vuoi installare sul tuo sistema puoi eseguire:

sudo make install

Puoi verificare che wondershaper sia stato installato correttamente inserendo:

which wondershaper

Questo dovrebbe restituire /usr/bin/wondershaper. Puoi seguire le stesse istruzioni spiegate nella sezione “Usare wondershaper”, ma invece di eseguire la versione locale del programma ora esegui la versione di sistema rimuovendo il ./ dall’inizio di ogni comando. Per esempio per mostrare di nuovo le istruzioni di aiuto esegui:

wondershaper -h

Uso persistente di wondershaper (opzionale)

Invece di usare le opzioni della riga di comando per impostare i tassi e l’interfaccia come mostrato precedentemente, è necessario impostare questi parametri nel file di configurazione wondershaper.conf. Puoi modificare questo file usando il tuo editor di testo preferito (vim nell’esempio qui sotto) come segue:

sudo vim /etc/systemd/wondershaper.conf

Per assicurarti che wondershaper sia riattivato al riavvio viene fornito un file di servizio systemd. Prima abilita wondershaper come servizio systemd usando:

sudo systemctl enable --now wondershaper.service

In questo modo wondershaper viene attivato con le tue impostazioni al riavvio.

Uso

 wondershaper 

Sono permesse le seguenti opzioni della linea di comando:

  • -h Visualizza aiuto

  • -a <adapter> Imposta l’adattatore

  • -d <rate> Imposta la massima velocità di download (in Kbps) e/o

  • -u <rate> Imposta la massima velocità di upload (in Kbps)

  • -p Usa le impostazioni in /etc/systemd/wondershaper.conf

  • -c Cancella i limiti dall’adattatore

  • -s Mostra lo stato attuale dell’adattatore

Le diverse modalità sono:

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

Alcuni esempi:

 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