Ответы:
Ограничить отдельный интерфейс легко, но глобальные ограничения скорости требуют более сложных правил, как и правила, основанные на приложениях. Я не говорю, что это не может быть сделано, но для этого нужно немало покопаться во внутренностях сети.
Вот быстрый Как настроить ограничение для каждого интерфейса
Если вы действительно хотите установить правила для приложений, вам следует обратиться к некоторой среде брандмауэра, такой как shorewall , в которой есть вспомогательные функции для настройки шейпинга. Даже с этими инструментами требуется немножко продуманного и проверенного, чтобы установить его на место. Делать что-то подобное этому не так просто.
wondershaper eth0 1000 1000
не имеет пропускной способности интернета. Мне нужно ограничить всю пропускную способность eth0 не только конкретными приложениями. Как это можно сделать?
Хотя это старый вопрос, я сталкивался с этим, когда искал ответ на тот же вопрос. Ограничения ОС и интерфейса уже были рассмотрены в более раннем ответе, поэтому здесь есть способ установить ограничения для конкретного приложения. Используйте приложение под названием струйка. Так и делай sudo apt-get install trickle
. Вы можете ограничить загрузку / загрузку для определенного приложения, запустив
trickle -u (upload limit in KB/s) -d (download limit in KB/s) application
Это запустит приложение с указанными ограничениями. Вы также можете указать время «сглаживания», чтобы сэмплировать сэмплы в течение требуемого периода времени, если ваше приложение имеет всплески потребления полосы пропускания и вы хотите, чтобы эти всплески были разрешены, если среднее значение находится в пределах ваших спецификаций.
trickle: Could not reach trickled, working independently: No such file or directory
. Вы можете удалить это предупреждение, выполнив ручеек в автономном режиме с помощью trickle -s
.
Если вы хотите ограничить пропускную способность для определенного IP-адреса, вы можете использовать это:
tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:10 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:11 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:12 htb rate 5000kbps
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.105 flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.106 flowid 1:11
wondershaper
в Ubuntu 17.10, которое может быть похоже на то, что происходит с @Zeromatiker в Ubuntu 17.04: bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421