限制每个 IP 的 UDP 连接 iptables

限制每个 IP 的 UDP 连接 iptables

我想限制特定 UDP 端口的每个 IP 的连接数。我让它在 TCP 上工作,但不知何故它在 UDP 上不起作用。这些是我的规则:

对于 TCP(工作)

iptables -A INPUT -p tcp --syn --dport 7787 -m connlimit --connlimit-above 3 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --syn --dport 7788 -m connlimit --connlimit-above 3 -j REJECT --reject-with tcp-reset

对于 UDP

iptables -A INPUT -p udp --dport 7787 -m connlimit --connlimit-above 3 -j REJECT
iptables -A INPUT -p udp --dport 7788 -m connlimit --connlimit-above 3 -j REJECT

根据手册页,这应该可以工作(至少我是这样理解的),但有时我仍然会被单个 IP 淹没。

答案1

您的问题毫无意义,因为 UDP 实际上没有“连接”。每个源 IP/端口仅设置一个 conntrack 条目。

答案2

我认为您真正想要的是基于 hashlimit 模块的东西。

答案3

嗯,这听起来很有可能是你的客户端使用少于 3 个 NFCT 连接来淹没你。

相关内容