温馨提示×

Ubuntu iptables如何限制连接速率

小樊
67
2025-04-21 10:22:18
栏目: 智能运维

在Ubuntu系统中,使用iptables限制连接速率可以通过iptableslimit模块来实现。以下是一些示例命令,展示了如何使用iptables来限制连接速率:

限制每秒连接数

假设你想限制每个IP地址每秒只能建立5个新的TCP连接,可以使用以下命令:

sudo iptables -A INPUT -p tcp --syn -m limit --limit 5/s -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP

解释:

  • -A INPUT:将规则添加到INPUT链。
  • -p tcp:指定协议为TCP。
  • --syn:只匹配SYN包(TCP三次握手的第一个包)。
  • -m limit --limit 5/s:使用limit模块限制速率为每秒5个连接。
  • -j ACCEPT:如果匹配规则,则接受连接。
  • -j DROP:如果不匹配规则(即超过速率限制),则丢弃连接。

限制每分钟连接数

如果你想限制每个IP地址每分钟只能建立300个新的TCP连接,可以使用以下命令:

sudo iptables -A INPUT -p tcp --syn -m limit --limit 300/m -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP

解释:

  • -m limit --limit 300/m:使用limit模块限制速率为每分钟300个连接。

限制总连接数

如果你想限制每个IP地址的总连接数为1000个,可以使用以下命令:

sudo iptables -A INPUT -p tcp -m connlimit --connlimit-above 1000 -j DROP

解释:

  • -m connlimit --connlimit-above 1000:使用connlimit模块限制总连接数超过1000个的连接。

保存iptables规则

在Ubuntu系统中,iptables规则默认不会保存,重启后会丢失。你可以使用iptables-persistent工具来保存规则:

sudo apt-get update
sudo apt-get install iptables-persistent

在安装过程中,系统会提示你是否保存当前的iptables规则,选择“是”即可。

查看iptables规则

你可以使用以下命令查看当前的iptables规则:

sudo iptables -L -v -n

解释:

  • -L:列出所有规则。
  • -v:显示详细信息。
  • -n:以数字形式显示地址和端口。

通过这些命令,你可以有效地使用iptables来限制连接速率,保护你的服务器免受恶意攻击。

0