位置:首页 > Shell > iptables 如何阻止特定 IP 访问

iptables 如何阻止特定 IP 访问

时间:2026-08-25  |  作者:电竞小硕  |  阅读:0

目录

  1. 封禁指定 IP 的基本命令
  2. 如何取消对该 IP 的封禁
  3. 为什么重启后会失效,以及怎样持久化

前言

遇到单个来源 IP 持续访问主机时,iptables 仍然是最直接的拦截手段之一。下面按“先封禁、再恢复、最后持久化”的顺序整理操作,适合临时处理异常访问,也能帮助你判断规则是否真的会在重启后继续生效。

遇到单个来源 IP 持续访问主机时,iptables 仍然是最直接的拦截手段之一。下面按“先封禁、再恢复、最后持久化”的顺序整理操作,适合临时处理异常访问,也能帮助你判断规则是否真的会在重启后继续生效。

封禁指定 IP 的基本命令

如果目标是直接阻止某个 IP 访问当前系统,可以先在终端中添加一条 INPUT 链规则,把来自该地址的数据包直接丢弃。

展示 iptables 封禁与解封指定 IP 的两条核心命令及作用结果的信息图
iptables 封禁与解封命令对照用一张图梳理添加与删除 DROP 规则的命令结构、示例 IP 与实际效果。
sudo iptables -A INPUT -s  -j DROP

这里的 需要替换成实际要屏蔽的来源地址。

例如,要阻止 192.168.1.100 访问,命令写法如下:

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

执行后,来自这个 IP 的数据包会被直接丢弃。对于访问方来说,效果就是无法继续连到这台机器。

如何取消对该 IP 的封禁

如果后续需要恢复访问权限,可以删除刚才添加的规则。命令结构与添加规则基本一致,只是把 -A 改为 -D

sudo iptables -D INPUT -s  -j DROP

同样以 192.168.1.100 为例,解除封禁时可执行:

sudo iptables -D INPUT -s 192.168.1.100 -j DROP

回车后,这条屏蔽规则就会从 INPUT 链中移除,该 IP 也就不再按这条规则被丢弃。

为什么重启后会失效,以及怎样持久化

需要特别注意的是,上面的规则默认只在当前运行周期内生效。系统一旦重启,内存中的 iptables 规则通常不会自动保留,因此如果你只是临时执行了封禁命令,重启后拦截就可能消失。

展示 iptables 规则重启失效原因与 Debian、Ubuntu、Red Hat、Fedora 持久化保存命令的信息图
iptables 规则持久化保存方式这张图集中说明规则为何会在重启后丢失,以及不同发行版各自对应的保存命令。

要让规则在重启后继续存在,需要把当前规则保存到系统使用的配置中。不同 Linux 发行版的做法并不一样。

Debian 或 Ubuntu

在 Debian 或 Ubuntu 上,可使用下面的命令保存:

sudo iptables-sa ve > /etc/iptables/rules.v4

Red Hat 或 Fedora

在 Red Hat 或 Fedora 上,则可以使用:

sudo service iptables sa ve

或者:

sudo systemctl sa ve iptables

完成保存后,规则才更接近“重启后仍然有效”的状态。实际操作时,建议在添加或删除规则后立刻确认是否已经保存,否则下次重启可能会发现配置又回到了初始状态。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多