Jak ograniczyć przepustowość sieci?

74

Hostujemy aplikację na zdalnym serwerze. Musimy to przetestować przy ograniczonej przepustowości sieci (dla użytkowników ze złym dostępem do Internetu).

Czy mogę ograniczyć przepustowość internetu? Na przykład: 128 KB na sekundę.

fikcja
źródło

Odpowiedzi:

67

Możesz ograniczyć przepustowość sieci na interfejsie za pomocą polecenia o nazwie tcStrona man dostępnego pod adresem http://linux.die.net/man/8/tc

W przypadku prostego skryptu wypróbuj Wondershaper .

Przykład użycia tc: tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540

Nikhil Mulley
źródło
6
Link do atmail.com z prośbą o autoryzację nazwy użytkownika / hasła ... :(
Ash
1
Możesz przejść do zawartości atmail tutaj: web.archive.org/web/20130719031908/http://atmail.com/kb/2009/…
Tom Saleeba
lepiej późno niż wcale, jeśli zamierzasz użyć routera busybox lepszą metodą jest tcpolecenie, możesz sprawdzić post Marka tutaj mark.koli.ch/ ... wiki openvz ma więcej przykładów openvz.org/Traffic_shaping_with_tc
nwgat
wygląda na to, że możliwe jest również ograniczenie przepustowości za pomocą iptables (w razie potrzeby możesz edytować odpowiedź): serverfault.com/questions/52027/…
baptx 27.04.16
62

Jak zauważono w poprzedniej odpowiedzi, Wondershaper wykonuje tę pracę z łatwością. Podaję informacje z powyższego linku autorstwa Jwalanty Shrestha

apt-get install wondershaper

wondershaper - Proste narzędzie do ograniczenia przepustowości określonego interfejsu.

$ sudo wondershaper {interface} {down} {up}

{down} i {up} są przepustowością w kpbs

Na przykład jeśli chcesz ograniczyć przepustowość interfejsu eth1 do łącza downlink 256 kb / s i łącza w górę 128 kb / s,

$ sudo wondershaper eth1 256 128

Aby usunąć limit,

$ sudo wondershaper clear eth1 
eden
źródło
2
Idealnie byłoby, gdybyś właśnie edytował oryginalną odpowiedź zamiast dodawać nową. To jest standardowa polityka. W każdym razie +1 za twoją odpowiedź, ponieważ dodaje informacji do odpowiedzi.
shivams
2
Jest to bardzo przydatne, jeśli tethering danych mobilnych i masz limit dozwolonego użytku (a potem musisz kupić nowe pakiety, tak jest w przypadku Lycamobile). W witrynach do przesyłania strumieniowego wideo, takich jak YouTube, całe wideo jest ładowane bezpośrednio, jeśli masz wystarczającą przepustowość. Jeśli ograniczysz przepustowość, wideo automatycznie przełączy się na niską rozdzielczość i pobierze tylko to, co oglądasz, co zapisuje dane, jeśli nie chcesz oglądać wszystkiego.
baptx
2
Przydatny również do przesyłania dużych plików, ponieważ nie tylko ogranicza przepustowość, ale także nadaje priorytet ruchowi. Aby podczas przesyłania pliku 10 GB nadal można było korzystać z SSH.
PeterM,
5
Wondershaper jest bardzo przestarzały: Wondershaper Must Die (Bufferbloat.net)
Niklas Holm
10

Ograniczanie zasobów sieciowych w oparciu o niektóre kryteria jest przedmiotem QoS . Istnieje kilka różnych sposobów kontrolowania ruchu użytkowników w systemach Linux.

Bert Hubert ma dobre instrukcje na temat zaawansowanych technik routingu i kontroli ruchu w systemie Linux.

Emre Yazici
źródło
2
Czy miałeś na myśli konkretny rozdział?
rogerdpack,
1
Jeśli nie chcesz zmieniać ustawień systemu, po prostu zainstaluj serwer proxy squid3, a następnie ustaw swoją „ograniczoną” aplikację za pośrednictwem serwera proxy. W przypadku aplikacji cli możesz ustawić torsocks lub proxy, a dla ciężkich aplikacji GUI możesz także zainstalować Fiddler mono, więc tak ... istnieją pewne sposoby kontrolowania wszystkiego :)
erm3nda
(to jest odpowiedź tylko link)
Konrad Gajewski
7

Jeśli masz już gdzieś konfigurację Apache, możesz jej użyć mod_bw, która działa również na połączeniach proxy (tzn. Apache po prostu przekazuje wszystko do właściwego serwera, ale spowalnia odpowiedzi).

Ulrich Schwarz
źródło
6

Dummynet robi to, co chcesz, a nawet więcej, możesz nawet kontrolować opóźnienie, losową utratę pakietów i wiele więcej.

Ammar Alammar
źródło
6

Możesz także użyć modułu hashlimit iptables. Oto prosty przykład:

iptables -A DO PRZODU -m hashlimit - hashlimit powyżej 512 kb / s - hashlimit-burst 1mb - tryb hashlimit srcip, dstip - hashlimit-name bwlimit -j DROP

Ta reguła ogranicza ruch przechodzący przez łańcuch FORWARD jako 512 kb / s z serią 1 Mb dla każdej pary źródłowej i docelowej.

Aby uzyskać więcej informacji, zobacz sekcję hashlimit w instrukcji iptables.

http://ipset.netfilter.org/iptables-extensions.man.html

ibrahim
źródło