Czy istnieje prosty sposób na ograniczenie wykorzystania przepustowości przez użytkownika?

14

Czy istnieje prosty sposób na ograniczenie wykorzystania przepustowości przez użytkownika do 10 kpbs? Nie powinno to mieć wpływu na innych użytkowników. Najlepsze, co znalazłem, to tc, ale wydaje się to zbyt skomplikowane, aby zrobić tak prostą rzecz.

Puszysty
źródło
Jeśli podana odpowiedź rozwiązuje Twój problem (mam nadzieję, że tak), wybierz ją jako zaakceptowaną, aby problem mógł zostać oznaczony jako rozwiązany.
heemayl

Odpowiedzi:

8

tc jest poprawną odpowiedzią na twoje potrzeby konfiguracyjne.
tc może wydawać się skomplikowane, ponieważ zarządza klasowymi (i mniej) kolejkami uczniów, co daje mu nieograniczoną elastyczność i warstwy kształtowania i filtrowania.
Tak jednak nie jest. Ponieważ tc wykorzystuje wbudowane (lub modułowe) kolejkowanie uczniów w jądrze, jest to najprostszy / najlepszy sposób ograniczenia przepustowości dla poszczególnych użytkowników.
Oto przykładowa konfiguracja, zostawiłem ją w formacie Mbit, ale możesz zmienić miarę szybkości na kb / s.

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

Dla ciebie reguła iptables wystarczy zmienić - identyfikator użytkownika na identyfikator użytkownika, którego chcesz ograniczyć, dokumentacja mówi, że możesz użyć nazwy użytkownika zamiast identyfikatora UID, nie przetestowałem tego.

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

Do Twojej wiadomości, nawet jeśli nie potrzebujesz HTB, poleciłbym go w oparciu o dostępne opcje i do jakiej prędkości się ograniczasz.

cupojavashort
źródło