Answers:
限制单个接口很容易,但是全局速率限制和基于应用程序的规则一样,需要更复杂的规则。我并不是说这不可能完成,但是需要深入挖掘网络的内部。
这里是一个快速如何在建立一个每个接口限制
如果您确实想设置基于应用程序的规则,则应查看一些防火墙框架,例如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中的问题提交了一个错误,该错误可能与Ubuntu 17.04中@Zeromatiker的