我的路由器上安装了 DD-WRT,我希望能够限制某个 IP 或 Mac 地址的带宽上限和下限。我很高兴亲自动手并使用控制台。
我确信 iptables 可以做到这一点?如果是这样,有人可以给我举一个简单的例子吗?
答案1
好吧,不幸的是我还没有找到一种简单的方法来做到这一点,否则我会给你一些例子;但是,该tc
命令将执行您需要的操作。
Tc 是内置于 Linux 内核中的流量整形实用程序。做好准备,这不适合胆小的人。我建议在开始之前仔细阅读有关排队规则的内容。
至少,这应该给你一个开始的地方:
http://www.dd-wrt.com/wiki/index.php/Tc_command
编辑:
从该页面,此链接声称有一个“简单”答案:
答案2
您可以使用该tc
命令来完成此操作。如果您想对单个主机进行速率限制,这里有一个快速指南:
如果您想要更全面的设置(例如,保证 VoIP 流量的优先级),DD-WRT 支持直接通过其用户界面设置 QoS 规则。看这里:
创建者提供的此链接tc
提供了使用其工具进行流量整形的详细概述,值得一读:
答案3
就像是这举个简单的例子:
tc qdisc del dev br0 root
tc qdisc add dev br0 root handle 1: cbq avpkt 1000 bandwidth 10mbit
tc class add dev br0 parent 1: classid 1:1 cbq rate 700kbit allot 1500 prio 5 bounded isolated
tc filter add dev br0 parent 1: protocol ip prio 16 u32 match ip dst 192.168.1.133 flowid 1:1
tc filter add dev br0 parent 1: protocol ip prio 16 u32 match ip src 192.168.1.133 flowid 1:1
代替700kbit对于您想要强制执行的限制,以及192.168.1.133对于您想要限制的IP。注意10兆位第一行中的速度应接近您的实际链接速度,才能发挥最佳效果。
在ssh控制台中输入进行测试。当您对它感到满意时,在 dd-wrt 中将其放在下面,Administration / Commands / Save Firewall
以便在重新启动/界面更改时自动启动。
答案4
实现此目的的一种方法是通过 Web GUI 使用 QoS 将设备放入批量类中,然后使用 cron 作业限制整个类的速率。