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.
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.
Respostas:
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.