阻止来自相同IP地址的多个连接

我想只允许在linux网关上的每台机器上连接一个连接,或者换句话说就是阻止来自同一个IP地址的多个连接。 其实我想阻止互联网下载pipe理器吃掉networking的所有带宽。 目前我使用的是基于iptables的防火墙。

提前致谢

您可以使用iptables“connlimit”匹配扩展名,请参阅iptables的手册页获取更多信息。

如果您的目的是阻止下载pipe理器与Web服务器进行多个HTTP / S连接,以便通过多个连接下载相同的文件并因此更快,您可能希望禁用“分块传输编码”。 根据您使用的Web服务器,您可以了解如何禁用该服务器。

如果您的下载pipe理器来自单个/几个IP地址或端口,您也可以考虑使用tc来pipe理它。 你可以做的是创build两个“通道”,一个保证大的带宽,另一个保证带宽小,但能够借用另一个“通道”。 例如:

 tc qdisc add dev eth1 root handle 1: htb default 10 tc class add dev eth1 parent 1: classid 1:1 htb rate 4mbit ceil 4mbit tc class add dev eth1 parent 1:1 classid 1:10 htb rate 3mbit ceil 4mbit tc class add dev eth1 parent 1:1 classid 1:11 htb rate 1mbit ceil 4mbit tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src 10.2.1.100 flowid 1:11 tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 10.2.1.100 flowid 1:11 

这将保证来自10.2.1.100的数据stream的1Mbit,但是如果可用,则允许使用最多4MBit,并且保证所有其他主机的stream量为3MBit,或者如果可用则保证3MBit。

唯一的问题是tc文档不完全好。