![限制每个 IP 的 UDP 连接 iptables](https://linux22.com/image/580331/%E9%99%90%E5%88%B6%E6%AF%8F%E4%B8%AA%20IP%20%E7%9A%84%20UDP%20%E8%BF%9E%E6%8E%A5%20iptables.png)
我想限制特定 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 连接来淹没你。