Есть ли простой способ ограничить использование полосы пропускания пользователя?

Есть ли простой способ ограничить использование полосы пропускания пользователя, скажем, 10 кбит / с? Другие пользователи не должны быть затронуты. Лучшее, что я нашел, это tc, но он кажется слишком сложным, чтобы делать такие простые вещи.

14
задан 24 January 2013 в 23:13

1 ответ

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, я бы порекомендовал его на основе доступных опций и скорости, которую вы ограничиваете.

0
ответ дан 24 January 2013 в 23:13

Другие вопросы по тегам:

Похожие вопросы: