Как я могу ограничить скорость загрузки и скачивания на моем сервере CentOS? Это коробка с единым интерфейсом, eth0
. В идеале мне нужно решение для командной строки (я пытался использовать tc
), то, что я мог бы легко включить и выключить в скрипте.
До сих пор я пытался сделать что-то вроде tc filter add dev eth0 protocol ip prio 50 u32 police rate 100kbit burst 10240 drop
но мне явно не хватает знаний и информации. Может кто-нибудь помочь с быстрым однострочником?
Большое спасибо, Дэн
У меня возникли проблемы с добавлением кода сценария здесь, он доступен по этой сути - https://gist.github.com/akrasic/7242498#file-limit-tc-sh
Сценарий использует TC и Hierarchical Token Bucket (HTB) для определения правил и, наконец, фильтров, которые будут действовать как универсальное правило.
Вам нужно будет изменить interface
var, если он отличается от eth0
˙и interface_speed
.
Сохраните скрипт на своем сервере и запустите его: ḃash limit-tc.sh start
Остановиться: bash limit-tc.sh stop
Статус просмотра: bash limit.tc status
Вывод статуса будет выглядеть примерно так:
qdisc htb 1: root refcnt 2 r2q 10 default 30 direct_packets_stat 1
Sent 535666 bytes 6461 pkt (dropped 172, overlimits 7641 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 10: parent 1:10 limit 127p quantum 1514b perturb 10sec
Sent 535624 bytes 6424 pkt (dropped 172, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc sfq 20: parent 1:20 limit 127p quantum 1514b perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0