linux

iptables如何限制连接速率

小樊
55
2025-07-23 06:06:45
栏目: 编程语言

iptables 是 Linux 系统中用于配置内核防火墙的一个命令行工具。要使用 iptables 限制连接速率,你可以使用 limit 模块。以下是一些示例:

  1. 限制每秒允许5个新连接:
iptables -A INPUT -p tcp --syn -m limit --limit 5/s -j ACCEPT
  1. 限制每个IP地址每秒允许5个新连接:
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个突发连接)。

  1. 限制每个IP地址每分钟允许100个连接:
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(流量控制)工具。

0
看了该问题的人还看了