Existe-t-il un moyen simple de limiter l'utilisation de la bande passante des utilisateurs?

14

Existe-t-il un moyen simple de limiter l'utilisation de la bande passante utilisateur pour dire 10 kpbs? Les autres utilisateurs ne devraient pas être affectés. Le meilleur que j'ai trouvé est tc, mais cela semble beaucoup trop compliqué pour faire une chose aussi simple.

Duveteux
la source
Si la réponse donnée résout votre problème (je l'espère), veuillez la sélectionner comme acceptée, afin que ce problème puisse être marqué comme résolu ..
heemayl

Réponses:

8

tc est la bonne réponse à vos besoins de configuration.
tc peut sembler compliqué car il gère les disciples de file d'attente de classe (et moins), ce qui lui donne une flexibilité illimitée et des couches de mise en forme et de filtrage.
Ceci, en revanche, n'est pas le cas. Comme tc utilise les disciples de mise en file d'attente intégrés (ou modulaires) dans le noyau, c'est le moyen le plus simple / le meilleur de limiter la bande passante par utilisateur.
Voici un exemple de configuration, je l'ai laissé au format Mbit mais vous pouvez changer la mesure de débit en 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

Pour vous, la règle iptables remplace simplement --uid-owner par l'uid de l'utilisateur que vous souhaitez limiter, la documentation indique que vous pouvez utiliser le nom de l'utilisateur au lieu de l'UID, sans l'avoir testé.

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

Pour info même si vous n'avez pas besoin d'un HTB, je le recommanderais en fonction des options disponibles et de la vitesse à laquelle vous limitez.

cupojavashort
la source