Linux怎么使用iptables封禁IP地址
使用iptables封禁IP需注意:添加-s源地址和-jDROP,规则顺序正确;封网段用CIDR斜杠格式;删除规则通过行号;重启后规则消失需持久化保存;规则过多时改用ipset提升性能。
先别急着敲命令,iptables 封 IP 这事儿,看着简单,但细节里全是坑。很多人以为只要一行 iptables -A INPUT -s 192.168.1.100 -j DROP 就完事了,结果要么没生效,要么把自己也封出去。真正让规则跑对、跑稳,至少得把下面这几个关键点掰扯清楚。

iptables封IP必须加 -s 和 -j DROP,顺序不能错
直接执行 iptables -A INPUT -s 192.168.1.100 -j DROP 就能生效,但很多人漏掉 -s(源地址)或写成 -d(目标地址),结果规则不匹配;-j DROP 也不能换成 -j REJECT 后不测试——前者静默丢包,后者会发 RST 包,某些扫描器反而会把它当“端口开放”信号继续试探。
常见错误现象:
- 执行命令没报错,但 IP 仍能连 SSH:多半是忘了
-s或写错了链名(比如用了OUTPUT而不是INPUT) - 封完后自己也连不上:规则插太靠前,挡住了本机回环或已建立连接,建议在
ESTABLISHED规则之后再加封禁规则
封单个IP和封网段用法不同,/24 不等于 “最后一位改成0”
封单个 IP:iptables -I INPUT -s 203.0.113.45 -j DROP;封网段必须用 CIDR 表示法,比如封整个 C 段要写 203.0.113.0/24,而不是 203.0.113.* 或 203.0.113.0/255.255.255.0——iptables 只认斜杠格式。
参数差异:
/24→ 覆盖 256 个地址(0–255)/16→ 覆盖 65536 个地址(如192.168.0.0/16)- 别用
/32封单个 IP,虽然语法合法,但语义冗余,直接写 IP 更清晰
规则删不掉?先看行号,再用 -D + 编号,别硬记完整规则
执行 iptables -L INPUT -n --line-numbers,输出里第一列就是编号。想删第 3 条,直接 iptables -D INPUT 3。如果用 -D 加完整规则(如 iptables -D INPUT -s 203.0.113.45 -j DROP),必须确保参数顺序、空格、大小写和原始添加时完全一致——哪怕多一个空格也会失败。
容易踩的坑:
- 误删其他规则:编号会随增删动态变化,删之前务必重新
--line-numbers查一次 - 删了没生效:规则还在内存里,但没保存,重启就恢复——这不是删失败,是忘了持久化
重启后规则消失?不同系统保存方式完全不同
Debian/Ubuntu 装 iptables-persistent,保存命令是 iptables-sa ve > /etc/iptables/rules.v4;CentOS 7 用 service iptables sa ve;CentOS 8+ 默认没 iptables 服务,得装 iptables-services 或切到 nftables。
性能影响:
- 规则越多,匹配越慢,超过 50 条建议改用
ipset(尤其要封几百个散 IP 时) - 别在
FORWARD链乱加 DROP——你不是路由器,大概率不需要碰这条链
实际操作中,最常被忽略的是规则加载顺序和持久化机制。封 IP 看似一行命令,但生效依赖链位置、保存动作、以及是否与其他规则冲突——光加一条 DROP 远不够。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,






