Чи існує простий спосіб обмежити використання пропускної здатності користувача?


14

Чи існує простий спосіб обмежити використання пропускної здатності користувача, наприклад, 10 кбіт / с? На інших користувачів це не повинно впливати. Найкраще, що я знайшов, - це tc, але це здається занадто складним, щоб зробити таку просту річ.


Якщо дана відповідь вирішує вашу проблему (я сподіваюся, що так), будь ласка, виберіть її як прийняту, щоб цю проблему можна було позначити як
вирішену

Відповіді:


8

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-власник на uid користувача, якого ви хочете обмежити, документація говорить, що ви можете використовувати ім'я користувачів замість UID, не перевіряли цього.

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

FYI, незважаючи на те, що вам не потрібен HTB, я рекомендував би його виходячи з наявних опцій та швидкості, яку ви обмежуєте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.