Existe uma maneira fácil de limitar o uso da largura de banda do usuário?

14

Existe uma maneira fácil de limitar o uso da largura de banda do usuário para dizer 10kpbs? Outros usuários não devem ser afetados. O melhor que eu encontrei é o tc, mas parece muito complicado fazer uma coisa tão simples.

Fofo
fonte
Se a resposta dada resolve o seu problema (assim espero), selecione-o como aceita, de modo a que esta questão pode ser marcado como resolvido ..
heemayl

Respostas:

8

tc é a resposta correta para suas necessidades de configuração.
Isso pode parecer complicado porque gerencia discípulos de filas cheios de classe (e menos), o que lhe confere flexibilidade ilimitada e camadas de modelagem e filtragem.
No entanto, este não é o caso. Como o tc utiliza os discípulos de enfileiramento incorporados (ou modulares) no kernel, é a maneira mais simples / melhor de limitar a largura de banda por usuário.
Aqui está um exemplo de configuração, deixei no formato Mbit, mas você pode alterar a medida da taxa para kbps.

tc qdisc add dev eth0 root handle 1:0 htb
tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1Mbit ceil 1Mbit prio 1

Para a regra do iptables, basta alterar --uid-owner para o uid do usuário que você deseja limitar, a documentação diz que você pode usar o nome do usuário em vez do UID, mas não o testou.

iptables -t mangle -A POSTROUTING -o eth0 -p tcp -m owner --uid-owner 1000 -j CLASSIFY --set-class 1:1

Para sua informação, mesmo que você não precise de um HTB, eu o recomendaria com base nas opções disponíveis e em qual velocidade você está se limitando.

cupojavashort
fonte