Come posso limitare la larghezza di banda di download / upload?


Risposte:


42

Limitare la singola interfaccia è semplice, ma i limiti di velocità globali richiedono regole più complesse così come le regole basate sull'applicazione. Non sto dicendo che non può essere fatto, ma richiede un po 'di approfondimento all'interno della rete.

Ecco un veloce Come impostare un limite per interfaccia

Se vuoi davvero impostare regole basate sull'applicazione, dovresti cercare in alcuni framework di firewall, come shorewall , che hanno funzionalità di supporto per configurare il shaping. Anche con questi strumenti, richiede un bel po 'di riflessione e test per metterlo in atto. Fare qualcosa come questo ad hoc non è ancora così facile.


Wondershaper non funziona Non so perché (anche wondershaper eth0 1000 1000 non ha larghezza di banda Internet. Devo limitare tutta la larghezza di banda di Eth0 non solo applicazioni specifiche. Come posso farlo?
Arash,

67

Sebbene questa sia una vecchia domanda, mi sono imbattuto in questo quando cercavo una risposta alla stessa domanda. I limiti del sistema operativo e dell'interfaccia sono già stati affrontati in una risposta precedente, quindi ecco un modo per impostare limiti specifici dell'applicazione. Utilizzare un'applicazione chiamata gocciolamento. Così sudo apt-get install trickle. È possibile limitare l'upload / download per un'app specifica eseguendo

trickle -u (upload limit in KB/s) -d (download limit in KB/s) application

Ciò avvierà l'applicazione con i limiti specificati. È inoltre possibile specificare il tempo di "livellamento", in modo tale che i campioni di gocciolamento nel periodo di tempo desiderato nel caso in cui l'applicazione presenti un aumento del consumo di larghezza di banda e si desideri che gli scoppi siano consentiti purché la media rientri nelle specifiche.


14
Grazie mille! Questa soluzione è perfetta per controllare la larghezza di banda in base all'applicazione. Non esitare mai a pubblicare una risposta, anche se la domanda ha anni. Per riferimento futuro: è possibile che venga visualizzato un messaggio di errore simile trickle: Could not reach trickled, working independently: No such file or directory. È possibile rimuovere questo avviso eseguendo il gocciolamento in modalità autonoma con trickle -s.
Glutanimate,

Come rimuovo il limite limitato da gocciolamento?
Mouse anonimo

2
Trickle eseguirà l'applicazione per te con i limiti applicati. Quindi tutto ciò che devi fare è riavviare l'applicazione senza usare il comando trickle.
SMeznaric,

1
grazie mille per questa risposta era esattamente la cosa che stavo cercando
Ali,

1
Esattamente quello che mi serviva quando cercavo di simulare una connessione di rete lenta.
Ethan Kaminski,

5

Se si desidera limitare la larghezza di banda per un indirizzo IP specifico, è possibile utilizzare questo:

tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:10 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:11 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:12 htb rate 5000kbps

tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.105 flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.106 flowid 1:11

4
era piuttosto contorto. Alcuni #commenti farebbero molto. Ad esempio, potresti aggiungere collegamenti o spiegazioni per qdisc, classids, htb, ecc.
oligofren,

Quindi, per impostazione predefinita, quanto sopra limita tutto a 5000 kbps a meno che non venga filtrato in un'altra coda? Che dire se non vogliamo limitare tutto ?
Ken Sharp,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.