Есть ли простой способ ограничить использование полосы пропускания пользователя, скажем, 10kpbs? Другие пользователи не должны быть затронуты. Лучшее, что я нашел, это tc, но он кажется слишком сложным, чтобы делать такие простые вещи.
Есть ли простой способ ограничить использование полосы пропускания пользователя, скажем, 10kpbs? Другие пользователи не должны быть затронуты. Лучшее, что я нашел, это tc, но он кажется слишком сложным, чтобы делать такие простые вещи.
Ответы:
tc - правильный ответ на ваши потребности в конфигурации.
Это может показаться сложным, потому что он управляет классными (и менее) учениками в очереди, что дает ему неограниченную гибкость и уровни формирования и фильтрации.
Это, однако, не тот случай. Поскольку tc использует встроенные (или модульные) ученики в очереди в ядре, это самый простой / лучший способ ограничения пропускной способности для каждого пользователя.
Вот пример установки, я оставил ее в формате Mbit, но вы можете изменить показатель скорости на 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
Для вас правило iptables просто измените --uid-owner на uid пользователя, которого вы хотите ограничить, в документации сказано, что вы можете использовать имя пользователя вместо UID, не проверяли это.
iptables -t mangle -A POSTROUTING -o eth0 -p tcp -m owner --uid-owner 1000 -j CLASSIFY --set-class 1:1
К вашему сведению, даже если вам не нужен HTB, я бы порекомендовал его на основе доступных опций и скорости, которую вы ограничиваете.