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