1、使用hashlimit来限速

#从eth0网卡进入INPUT链数据,使用模块hashlimit 限制网速为100kb/s或2mb/s,超过限制的数据包会被DROP。OUTPUT链同理,mode为srcip,有4个mode选项:

  1. srcip(默认匹配每个源地址IP,配置指定源地址IP,使用-s参数)
  2. dstip(默认匹配每个目的地址IP,配置指定目的地址IP,使用-d参数)
  3. srcport(默认匹配每个源端口,配置指定源端口,使用-sport参数)
  4. dstport(默认匹配目的端口,配置指定目的端口,使用-dport参数)

2、限制从eth0网卡到IP地址网速

2.1 限制从eth0网卡到所有IP地址INPUT/OPUTPU数据网速为100kb/s:

[root@localhost ~]# iptables -A INPUT -i eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode srcip --hashlimit-name in -j DROP

[root@localhost ~]# iptables -A OUTPUT -o eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode dstip --hashlimit-name out -j DROP

[root@localhost ~]# iptables -L -n --line-numbers #查看添加的iptables规则

[root@localhost ~]# iptables -D INPUT 1 #根据查到iptables规则编号进行删除

2.2 限制从eth0网卡固定IP地址INPUT/OUTPUT数据网速为100kb/s:

[root@localhost ~]# iptables -A INPUT -i eth0  -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode srcip -s 192.168.3.36 --hashlimit-name in -j DROP

[root@localhost ~]# iptables -A OUTPUT -o eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode dstip -d 192.168.3.36 --hashlimit-name out -j DROP

[root@localhost ~]# iptables -L -n --line-numbers #查看添加的iptables规则

[root@localhost ~]# iptables -D INPUT 1 #根据查到iptables规则编号进行删除

[root@localhost ~]# iptables -D OUTPUT 1

3、限制从eth0网卡到端口网速

3.1 限制从eth0网卡所有端口INPUT/OPUTPU数据网速为100kb/s:

[root@localhost ~]# iptables -A INPUT -i eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode srcport --hashlimit-name in -j DROP

[root@localhost ~]# iptables -A OUTPUT -o eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode dstport --hashlimit-name out -j DROP

[root@localhost ~]# iptables -D INPUT 1 #根据查到iptables规则编号进行删除

[root@localhost ~]# iptables -D OUTPUT 1

3.2 限制从eth0网卡固定端口IPINPUT/OUTPUT数据网速为100kb/s:

[root@localhost ~]# iptables -A INPUT -i eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode srcport -p tcp --sport 9985 --hashlimit-name in -j DROP

[root@localhost ~]# iptables -A OUTPUT -o eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode dstport -p tcp --dport 9985 --hashlimit-name out -j DROP

[root@localhost ~]# iptables -D INPUT 1 #根据查到iptables规则编号进行删除

[root@localhost ~]# iptables -D OUTPUT 1

3.3 限制从eth0网卡固定端口IPINPUT/OUTPUT数据网速为100kb/s:

[root@localhost ~]# iptables -A INPUT -i eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode srcport -s 192.168.3.36 -p tcp --sport 9985 --hashlimit-name in -j DROP

[root@localhost ~]# iptables -A OUTPUT -o eth0 -m hashlimit --hashlimit-above 100kb/s --hashlimit-mode dstport -d 192.168.3.36 -p tcp --dport 9985 --hashlimit-name out -j DROP

[root@localhost ~]# iptables -D INPUT 1 #根据查到iptables规则编号进行删除

[root@localhost ~]# iptables -D OUTPUT 1

注:默认是来所有IP对应的端口,如果指定固定IP,请参考使用-s和-d参数。

原文链接:https://blog.csdn.net/mayifan0/article/details/116149344

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐