Обмежте вихідну пропускну здатність на певному інтерфейсі


32

Я хотів би знати найпростіший спосіб обмежити вихідну пропускну здатність для інтерфейсу. Я хочу обмежити швидкість вихідного порту, щоб передача файлів між моїми серверами не провалювалася протягом напружених годин.

Що найпростіше рішення? Я знаю, що міг би використовувати, iptablesале шукаю просту установку / конфігурацію.


HTB чудово працює. Дуже гнучка обмеження швидкості. sourceforge.net/projects/htbinit

Відповіді:


37

ettool

Ви можете змінити сукупну швидкість порта NIC, використовуючи ethtool.

$ sudo ethtool -s eth0 speed 10

Наприклад, це встановить порт у 10 Мб.

чудеса

Ви також можете використовувати інструмент wondershaperдля цього. ПРИМІТКА: Швидкість повинна бути в кілобітах на секунду.

$ sudo wondershaper eth1 downspeed upspeed

Наприклад:

$ sudo wondershaper eth0 10000 280

струмок

Третій варіант - Trickle . Trickle може використовуватися за програмою користувачами або як демон, що повністю пригнічує NIC.

Режим користувача - сторінка manil man

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

Вимкнете 20 К / с як для руху вгору, так і вниз для всього цього wget, все інше не буде обмежено.

Режим Daemon - сторінка manLint

У демон-режимі trickledможна обмежити групу програм фіксованою межею пропускної здатності. Щоб запустити демон, запустіть команду, що скручується:

$ sudo trickled -d 20 -u 20

писар

Четвертий варіант - pyshaper . Це унікальний варіант серед варіантів, оскільки він включає графічний інтерфейс, і він динамічно контролює та встановлює пропускну здатність у часі. Ви можете ознайомитися на сторінці чоловіка Pyshaper для отримання більш детальної інформації.

                                            pyshaper gui

Список літератури


Обмеження використання пропускної здатності проблемних додатків через групи, ймовірно, також буде корисним, якщо їх ядро ​​підтримує це.
Братчлі

wondershaper не працює. Я не знаю, чому (навіть у "wondershaper eth0 1000 1000" немає пропускної здатності Інтернету, як "sudo trickled -d 20 -u 20".) Мені потрібно обмежити один мережевий інтерфейс. пропускна здатність не тільки конкретних програм. як можна зробити це?
Араш

трюк не працював для мене, але чудеса зробила трюк!
peschü

1

Wondershaper востаннє редагувався у 2002 році, але він все ще працює на Fedora 21. Але зауважте, що в якості аргументів доступна лише пара варіантів, і ви не можете вказати швидкість завантаження / завантаження в командному рядку, як зазначено тут, принаймні, не у Завантажити версію 1.1a, випущену 16 квітня 2002 р. Ви повинні редагувати файл, і це сценарій оболонки. Не важко тим, хто знає маленьку шкаралупу.

Використання:

wondershaper (цей встановить вашу пропускну здатність відповідно до значень у файлі)

wondershaper status
wondershaper stop

Ви можете використовувати його, поки посилання працює в прямому ефірі, що приємно.


1

Інший варіант - « iproute2 », який, як видається, є зрілим та широко доступним інструментом маршрутизації / формування трафіку. Я знайшов це як RPM (напевно, багато інших пакетів теж не дивився). Станом на цей текст останньою версією була версія 4.4.0, побудована 25 січня 2016 року.

Переглядаючи синтаксис конфігурації, він здається порівняно простим (хоча і не таким простим, як ifconfigабо route.)


6
Ваша відповідь не стосується того, як реально використовувати iproute2 для обмеження вихідної пропускної здатності. Чи можете ви докладно уточнити?
Майкл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.