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

13

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 encontrei é o tc, mas parece complicado demais para fazer uma coisa tão simples.

    
por Fluffy 24.01.2013 / 20:13

1 resposta

7

tc é a resposta correta para suas necessidades de configuração.
O tc pode parecer complicado porque gerencia discípulos com enfileiramento de classe (e menos), o que lhe dá flexibilidade ilimitada e camadas de modelagem e filtragem.
Isso, no entanto, não é o caso. Como o tc utiliza os discípulos de filas embutidos (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 você regra 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 de UID, não testou isso.

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

FYI mesmo que você não precise de um HTB, eu o recomendaria com base nas opções disponíveis e na velocidade que você está limitando.

    
por cupojavashort 31.01.2013 / 12:27

Tags