我想限制特定 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 连接来淹没你。