使用iptables限制最大传入连接到端口

我有一个服务器,有多个端口上的Apache监听。 有些端口用于configuration服务器,另一个用于下载大文件。

我的问题是,当我有大量的客户端下载文件,Web界面是不可接触的。 我想限制在“大文件”端口连接的客户端的数量,以便Apache总是有可用的连接来configuration服务器。 REJECT没问题,试图下载文件的客户端将会退出,然后重试。 每个客户端一次只有一个连接对服务器开放,因此IP限制将不起作用。

我知道我可以把东西放在apache前面来pipe理,但是我真的想在iptables中做,而不需要增加更多的软件。

你可以试试--connlimit--connlimit-mask选项来设置掩码0。

 iptables -A INPUT -p tcp --dport XXY -m connlimit --connlimit-above 5 --connlimit-mask 0 -j REJECT 

XXY是您想要限制连接速率的端口。