iptables 如何阻止特定 IP 访问

月亮慢半拍
月亮慢半拍
发布时间:2026-08-25| 69人浏览过
原创

前言

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

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

封禁指定 IP 的基本命令

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

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

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

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

sudo iptables -A INPUT -s 192.168.1.100 -j DROP

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

如何取消对该 IP 的封禁

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

sudo iptables -D INPUT -s <IP_ADDRESS> -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

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

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。