温馨提示×

Linux防火墙如何限制连接数

小樊
36
2026-01-06 22:49:01
栏目: 智能运维

在Linux系统中,可以使用iptables和connlimit模块来限制连接数。以下是一个示例,展示了如何使用iptables和connlimit模块限制每个IP地址的并发连接数。

  1. 首先,确保iptables和connlimit模块已安装。在大多数Linux发行版中,它们通常是预装的。如果没有,可以使用以下命令安装:

    对于基于Debian的系统(如Ubuntu):

    sudo apt-get update
    sudo apt-get install iptables
    

    对于基于RPM的系统(如CentOS、Fedora):

    sudo yum update
    sudo yum install iptables-services
    
  2. 保存当前的iptables规则,以便在系统重启后仍然生效。这取决于你使用的Linux发行版和初始化系统。对于使用systemd的系统,可以使用以下命令:

    sudo systemctl stop firewalld
    sudo iptables-save > /etc/iptables/rules.v4
    sudo systemctl enable firewalld
    

    对于使用SysVinit的系统,可以使用以下命令:

    sudo service iptables save
    
  3. 使用以下命令限制每个IP地址的并发连接数。在这个例子中,我们将限制每个IP地址最多允许5个并发TCP连接:

    sudo iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 5 -j REJECT
    

    这条命令将添加一个新的规则到INPUT链,拒绝所有新的TCP连接请求,如果发起连接的IP地址已经有5个或更多的并发连接。

  4. 如果你想要限制其他类型的连接(例如UDP连接),只需将上述命令中的-p tcp替换为-p udp即可。

  5. 最后,保存更改后的iptables规则。对于使用systemd的系统,可以使用以下命令:

    sudo iptables-save > /etc/iptables/rules.v4
    

    对于使用SysVinit的系统,可以使用以下命令:

    sudo service iptables save
    

现在,你已经成功地使用iptables和connlimit模块限制了Linux系统上的连接数。请注意,这些规则仅适用于新的连接请求。已经建立的连接不会受到影响。

0