Odpowiedzi:
Ograniczanie pojedynczego interfejsu jest łatwe, ale globalne limity prędkości wymagają bardziej złożonych reguł, podobnie jak reguły oparte na aplikacjach. Nie twierdzę, że nie da się tego zrobić, ale wymaga to sporo zagłębiania się w wewnętrzne elementy sieci.
Oto krótki poradnik dotyczący ustawiania limitu interfejsu
Jeśli naprawdę chcesz skonfigurować reguły oparte aplikacji, należy szukać w pewnym ramach zapory, jak Shorewall , które posiadają funkcje pomocnicze, aby skonfigurować kształtowanie. Nawet z tymi narzędziami wymaga sporo staranności i testowania, aby go zainstalować. Robienie czegoś takiego jak ad hoc nie jest jeszcze takie łatwe.
wondershaper eth0 1000 1000
nie ma przepustowości internetu. Muszę ograniczyć całą przepustowość eth0 nie tylko określonych aplikacji. jak to zrobić?
Chociaż jest to stare pytanie, natknąłem się na to, szukając odpowiedzi na to samo pytanie. Limity systemu operacyjnego i interfejsu zostały już omówione we wcześniejszej odpowiedzi, więc oto sposób na ustawienie limitów specyficznych dla aplikacji. Użyj aplikacji o nazwie strużka. Tak też sudo apt-get install trickle
. Możesz ograniczyć przesyłanie / pobieranie dla określonej aplikacji, uruchamiając
trickle -u (upload limit in KB/s) -d (download limit in KB/s) application
Spowoduje to uruchomienie aplikacji z określonymi limitami. Możesz także określić czas wygładzania, aby pobierać próbki w pożądanym okresie, na wypadek, gdyby Twoja aplikacja miała gwałtowne zużycie przepustowości i chcesz, aby impulsy były dozwolone, o ile średnia jest zgodna ze specyfikacjami.
trickle: Could not reach trickled, working independently: No such file or directory
. Możesz usunąć to ostrzeżenie, uruchamiając strużkę w trybie autonomicznym za pomocą trickle -s
.
Jeśli chcesz ograniczyć przepustowość dla określonego adresu IP, możesz użyć tego:
tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:10 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:11 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:12 htb rate 5000kbps
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.105 flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.106 flowid 1:11
wondershaper
Złożyłem błąd dotyczący problemu w Ubuntu 17.10, który może być podobny do tego, co dzieje się z @Zeromatiker w Ubuntu 17.04: bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421