![基于 IP 的流量整形带宽和延迟](https://linux22.com/image/622249/%E5%9F%BA%E4%BA%8E%20IP%20%E7%9A%84%E6%B5%81%E9%87%8F%E6%95%B4%E5%BD%A2%E5%B8%A6%E5%AE%BD%E5%92%8C%E5%BB%B6%E8%BF%9F.png)
我知道如何分别调整延迟和带宽。对于带宽,我可以这样做
wondershaper etho0 100 100
对于延迟我可以运行
tc qdisc add dev eth0 root netem delay 200ms
但是,我需要将整形限制到特定的 IP 连接,并且需要同时整形延迟和带宽。
我怎样才能做到这一点?
答案1
你可以使用 tc 来调整带宽,如下所示
此类将对特定地址进行整形,使其达到特定速度。我们还需要设置一个过滤器,以便任何标记为此类的数据包都通过此规则
tc class add dev eth0 parent 1:1 classid 1:5 htb rate 256kbps ceil 256kbps prio 1
tc filter add dev eth0 parent 1:0 prio 1 handle 5 fw flowid 1:5
一旦设置了该类,您需要设置 iptables 来标记您想要塑造的特定数据包。
接下来,创建所需的 mangle 表。
iptables -t mangle -N shaper-out
iptables -t mangle -N shaper-in
iptables -t mangle -I PREROUTING -i eth0 -j shaper-in
iptables -t mangle -I POSTROUTING -o eth0 -j shaper-out
接下来设置我们需要塑造特定 IP 地址的标记。标记 5 是塑造为 256 的标记。
iptables -t mangle -A shaper-out -s 10.0.0.5 -j MARK --set-mark 5
iptables -t mangle -A shaper-in -d 10.0.0.5 -j MARK --set-mark 5
这应该将 10.0.0.5 塑造为 256kbps。
参考(我的博客) -http://sirlagz.net/2013/01/27/how-to-turn-the-raspberry-pi-into-a-shaping-wifi-router/