Ogranicz przepustowość wychodzącą na określonym interfejsie

32

Chciałbym poznać najprostszy sposób ograniczenia przepustowości wychodzącej dla interfejsu. Chcę ograniczyć prędkość portu wychodzącego, aby transfery plików między moimi serwerami nie kończyły się niepowodzeniem w godzinach pracy.

Jakie jest najłatwiejsze rozwiązanie? Wiem, że mógłbym użyć, iptablesale szukam prostej instalacji / konfiguracji.

Gabe
źródło
HTB działa świetnie. Bardzo elastyczne ograniczenie prędkości. sourceforge.net/projects/htbinit

Odpowiedzi:

37

ettool

Możesz zmienić łączną prędkość portu karty sieciowej za pomocą ethtool.

$ sudo ethtool -s eth0 speed 10

Spowoduje to na przykład ustawienie portu na 10 MB.

cudotwórca

Możesz również użyć tego narzędzia, wondershaperaby to zrobić. UWAGA: Prędkość powinna być w kilobitach na sekundę.

$ sudo wondershaper eth1 downspeed upspeed

Na przykład:

$ sudo wondershaper eth0 10000 280

sączyć

Trzecią opcją jest Trickle . Trickle może być używany przez program dla każdego programu lub jako demon, który całkowicie dławi kartę sieciową.

Tryb użytkownika - struga strony man

$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile

Przepędzi 20 K / s zarówno do ruchu w górę, jak i w dół wget, wszystko inne nie będzie ograniczone.

Tryb demona - podstępna strona man

W trybie demona trickledmoże ograniczyć grupę programów do stałego limitu przepustowości. Aby uruchomić demona, uruchom podstępną komendę:

$ sudo trickled -d 20 -u 20

pyshaper

Czwarta opcja to pyshaper . Jest to wyjątkowa opcja, ponieważ zawiera GUI i dynamicznie monitoruje i ustawia przepustowość w czasie. Możesz sprawdzić stronę podręcznika użytkownika pyshaper, aby uzyskać więcej informacji.

                                            pyshaper gui

Referencje

slm
źródło
Ograniczenie wykorzystania przepustowości przez aplikacje powodujące problemy przez cgroups prawdopodobnie byłoby również opłacalne, gdyby ich jądro to obsługiwało.
Bratchley,
wondershaper nie działa Nie wiem, dlaczego (nawet `wondershaper eth0 1000 1000` nie ma przepustowości internetu takiej samej jak` sudo trickled -d 20 -u 20`.) Muszę ograniczyć jeden interfejs sieciowy. przepustowość nie tylko określonych aplikacji. jak to zrobić?
Arash
strumyk nie działał dla mnie, ale cudotwórca załatwił sprawę!
peschü
1

Wondershaper był ostatnio edytowany w 2002 roku, ale nadal działa na Fedorze 21. Należy jednak pamiętać, że istnieje tylko kilka opcji dostępnych jako argumenty i nie można określić prędkości wysyłania / pobierania w wierszu poleceń, jak określono tutaj - przynajmniej nie w wersji 1.1a wydanej 16 kwietnia 2002 r. Musisz edytować plik i jest to skrypt powłoki. Nie trudne dla tych, którzy znają małą skorupkę.

Zastosowanie to:

wondershaper (ten ustawi przepustowość zgodnie z wartościami w pliku)

wondershaper status
wondershaper stop

Możesz go użyć, gdy link jest aktywny, co jest miłe.

Mike S.
źródło
1

Inną opcją jest „ iproute2 ”, która wydaje się być dojrzałym i powszechnie dostępnym narzędziem do trasowania / kształtowania ruchu. Znalazłem to jako RPM (prawdopodobnie też wiele innych pakietów, nie wyglądałem). W chwili pisania tego tekstu najnowszą wersją była 4.4.0, zbudowana 25 stycznia 2016 r.

Patrząc na składnię konfiguracji, wydaje się ona stosunkowo prosta (choć nie tak prosta jak ifconfiglub route.)

Zielony
źródło
6
Twoja odpowiedź nie dotyczy tego, w jaki sposób można by użyć iproute2 w celu ograniczenia przepustowości wychodzącej. Czy możesz opracować proszę?
Michael