要限制每个来访问的IP每秒钟都不超过10次,可以使用iptables的“hashlimit”模块。
下面是一个具体的例子:
iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit 10/second --hashlimit-mode srcip --hashlimit-name http-req-lim -j ACCEPT
这个命令将添加一个规则到iptables INPUT链,限制HTTP请求(端口号80)来自每个IP地址的连接数。--hashlimit 10/second 参数表示每秒钟最多只能有10个连接,超过这个限制将被丢弃。--hashlimit-mode srcip 参数表示根据源IP地址进行限制,--hashlimit-name http-req-lim 参数指定限制名称为http-req-lim。-j ACCEPT 参数表示当连接数在限制内时,接受这些连接。
需要注意的是,这个设置只会对新的连接生效,已经建立的连接不会受到限制。如果要限制其他服务的连接数,只需要更改端口号即可。同时需要注意,这种限制可能会误判某些正常流量,因此需要根据具体情况进行适当的调整。