Linux 如何实现对每 ip 限速?
- 0次
- 2021-06-22 13:22:51
- idczone
看了下网上的教程都是针对特定 ip 限速的,无法像路由器的 QOS 一样对所有 ip 都均等限速,例如每 ip 限制连接速度为 128k/s 这样,请问有实现的办法吗?
试一试 TC ?
https://serverfault.com/a/174229
感谢您的指点。请问这个有没有办法对某一个单独 ip 不做限制呢?
tc 和 iptables 一起用。Google tc+iptables
我写过一个脚本,定期扫描 arp 列表,然后把里面的 IP 挨个设置下载速度。。
上行速度没限,因为比较麻烦,要给每个上行包打标记,然后按照标记限速,太麻烦了,一般情况限制下行就行了。
iptables 加 mark 然后 tc
强烈建议读一遍 Linux Advanced Routing & Traffic Control HOWTO 超有用
不用 tc,纯 iptables 的方法:
iptables -A INPUT -i eth0 -m hashlimit --hashlimit-above 128kb/s --hashlimit-mode srcip --hashlimit-name in -j DROP
iptables -A OUTPUT -o eth0 -m hashlimit --hashlimit-above 128kb/s --hashlimit-mode dstip --hashlimit-name out -j DROP
请问这个规则,若要对某 IP1.2.3.4 不受此限制的话,该如何写呢?谢谢!
在我说的 DROP 的规则上面添加一条规则直接 ACCEPT 某个 IP,就可以了。
这个是 iptables 基础的基础,连这个都要人家告诉你,最好就别用 iptables 了。
你好,我在服务器上用你的这个 hashlimit+iptables 可以限制速度,但是有一个问题,如果是同一个局域网的两台机器连上服务器会被认为是同一个 ip,者 2 台机器速度被合并一起限速 128kb/s 了,有方法使同一局域网的 2 台机器分别限速 128kb/s 么,谢谢了。