Wondershaper — ограничиваем скорость DL/UL интерфейса

Wondershaper — это скрипт, который дает возможность пользователю управлять пропускной способностью одного или нескольких сетевых адаптеров на сервере под управлением ОС GNU/Linux. Данный инструмент может использоваться во время тестовой эксплуатации какого-либо ПО на VPS/VDS тогда, когда важно не превысить лимит по трафику из-за возможных ошибок или нештатных ситуаций. Кроме того, этот скрипт может быть полезен пользователям настольных дистрибутивов GNU/Linux как средство ограничения пропускной способности сетевого интерфейса на рабочей станции.

Wondershaper является своего рода «оберткой» утилиты tc, входящей в состав набора iproute2, но сам по себе значительно упрощает её применение. Начиная с версии 1.3, Wondershaper использует дисциплину обработки очереди HTB (Hierarchical Token Bucket), что позволяет лучше управлять пропускной способностью на высокоскоростных каналах связи. Авторы скрипта: Bert Hubert, Jacco Geul и Simon Séhier.

Получить Wondershaper можно из официального репозитория GitHub:

git clone  https://github.com/magnific0/wondershaper.git

Так как скрипт не требует установки, для его использования необходимо войти непосредственно в директорию с его файлами:

cd wondershaper

Для просмотра списка возможных аргументов используется ключ -h:

./wondershaper -h

Осталось лишь выбрать интерфейс, с которым мы будем работать. Просмотреть список интерфейсов можно командой ip addr show.

В следующем примере ограничивается пропускная способность беспроводного интерфейса до 4 Мбит/с на отдачу и до 8 Мбит/с на загрузку:

./wondershaper -a wlp4s0 -u 4096 -d 8192

Если при запуске скрипта возникает ошибка RTNETLINK answers: Operation not permitted,  это означает, что для применения ограничений недостаточно прав текущего пользователя. В этом случае необходимо запускать скрипт с правами суперпользователя:

sudo ./wondershaper -a wlp4s0 -u 4096 -d 8192

Важно заметить, что если планируется использовать скрипт как системную службу с поддержкой автозапуска, из его директории необходимо выполнить команды:

sudo make install
which wondershaper
sudo nano /etc/conf.d/wondershaper.conf
sudo systemctl enable wondershaper.service
  • первая команда установит Wondershaper как системную службу;
  • второй командой мы узнаем, где после установки будут находиться файлы скрипта (по умолчанию /usr/bin);
  • на третьем шаге мы должны отредактировать файл конфигурации, чтобы задать необходимые настройки ограничений пропускной способности сетевых интерфейсов;
  • команда sudo systemctl enable wondershaper.serviceактивирует автозапуск скрипта при старте системы.

С пояснениями по настройке Wondershaper и подробным руководством можно ознакомиться на странице официального git-репозитория:

https://github.com/magnific0/wondershaper

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *