温馨提示×

iptables如何阻止特定IP

小樊
88
2025-05-20 21:00:56
栏目: 编程语言

使用iptables阻止特定IP的步骤如下:

1. 阻止单个IP地址

方法一:使用iptables命令直接添加规则

sudo iptables -A INPUT -s <IP地址> -j DROP 
  • -A INPUT:将规则添加到INPUT链。
  • -s <IP地址>:指定要阻止的源IP地址。
  • -j DROP:丢弃匹配的数据包。

方法二:使用iptables命令添加规则并保存

sudo iptables -A INPUT -s <IP地址> -j DROP sudo iptables-save > /etc/iptables/rules.v4 
  • iptables-save:保存当前的iptables规则到文件。
  • /etc/iptables/rules.v4:保存规则的文件路径(适用于IPv4)。

2. 阻止IP地址范围

方法一:使用CIDR表示法

sudo iptables -A INPUT -m iprange --src-range <起始IP>-<结束IP> -j DROP 
  • -m iprange:启用IP范围匹配模块。
  • --src-range <起始IP>-<结束IP>:指定要阻止的IP地址范围。

方法二:使用多个规则

如果需要阻止多个IP地址范围,可以添加多条规则:

sudo iptables -A INPUT -s <起始IP1>-<结束IP1> -j DROP sudo iptables -A INPUT -s <起始IP2>-<结束IP2> -j DROP # 以此类推 

3. 阻止特定端口

如果你还想阻止特定IP访问特定端口,可以结合端口匹配:

sudo iptables -A INPUT -p tcp --dport <端口号> -s <IP地址> -j DROP 
  • -p tcp:指定协议为TCP。
  • --dport <端口号>:指定目标端口。
  • -s <IP地址>:指定源IP地址。

4. 查看当前iptables规则

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

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

5. 删除规则

如果你需要删除之前添加的规则,可以使用以下命令:

sudo iptables -D INPUT -s <IP地址> -j DROP 
  • -D INPUT:指定要删除规则的链。
  • -s <IP地址>:指定要删除规则的源IP地址。
  • -j DROP:指定要删除的规则动作。

注意事项

  1. 权限:修改iptables规则需要root权限。
  2. 持久化:默认情况下,iptables规则在系统重启后会丢失。你可以使用iptables-saveiptables-restore命令来持久化规则,或者使用iptables-persistent包(适用于Debian/Ubuntu)来自动保存和恢复规则。
  3. 测试:在生产环境中应用规则之前,建议先在测试环境中进行测试。

通过以上步骤,你可以有效地使用iptables阻止特定IP地址或IP地址范围的访问。

0