![限制转发流量中特定端口的 IP 连接](https://linux22.com/image/759953/%E9%99%90%E5%88%B6%E8%BD%AC%E5%8F%91%E6%B5%81%E9%87%8F%E4%B8%AD%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3%E7%9A%84%20IP%20%E8%BF%9E%E6%8E%A5.png)
我有一台服务器,我已在其上进行了端口转发。这意味着每个用户都使用专用端口连接到服务器,并且用户发送的流量被定向到远程服务器。我使用以下命令进行端口转发,效果很好
iptables -t nat -A PREROUTING -p tcp --dport 8090 -j DNAT --to-destination remote_ip:8090
iptables -t nat -A POSTROUTING -j MASQUERADE
为了进一步监控和控制服务器上的流量消耗,我想为每个端口设置一个限制。也就是说,每个用户使用 2 个 IP 连接到服务器。如果超过 2 个 IP,用户将被断开连接。我这样做是为了防止滥用。我尝试了这些代码:
iptables -A FORWARD -p tcp --syn --dport 8090 -m connlimit --connlimit-above 2 -j DROP
然后我同时使用两个不同的 IP 连接到服务器,我原本以为 IP 限制会起作用,并且我的一个连接会断开,但两个 IP 都已连接,因此此命令不起作用。是否可以在 iptables 中设置转发流量的 IP 限制?
答案1
2 不大于 2。
您指定了--connlimit-above 2
。这意味着它匹配第三联系。