iptables 是 Linux 系统中用于配置内核防火墙的一个命令行工具。要使用 iptables 限制连接速率,你可以使用 limit 模块。以下是一些示例:
iptables -A INPUT -p tcp --syn -m limit --limit 5/s -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 10 -m recent --set -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 10 -m recent --update --seconds 60 -j DROP
这里,我们使用了 recent 模块来跟踪最近的连接,并设置了一个突发限制(--limit-burst),允许在短时间内接受更多的连接。在这个例子中,我们允许每个IP地址在60秒内最多建立15个连接(5个连接/秒 * 60秒 + 10个突发连接)。
iptables -A INPUT -p tcp --syn -m limit --limit 100/m -m recent --set -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit --limit 100/m --limit-burst 20 -m recent --update --seconds 60 -j DROP
这里,我们将时间单位设置为分钟(m),并相应地调整了连接限制和突发限制。
请注意,这些规则仅适用于新的TCP连接请求(SYN包)。如果你想要限制已经建立的连接的传输速率,你需要使用其他方法,例如 tc(流量控制)工具。