讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux iptables 防火墙规则匹配机制解析

星杰大大_6273

星杰大大_6273

发布时间:2026-01-28 18:31:07

|

642人浏览过

|

来源于php中文网

原创

iptables规则按顺序逐条匹配,满足即执行动作且不再检查后续规则;顺序错误、模块依赖、网络路径差异及连接跟踪状态是四大常见问题根源。

linux iptables 防火墙规则匹配机制解析

iptables 规则匹配是顺序执行的,不匹配就跳下一条

iptables 不会“智能选择”最合适的规则,而是从链(如 INPUT、FORWARD)的第一条规则开始逐条比对,一旦某条规则的条件全部满足,就立即执行其 -j 目标动作(比如 ACCEPT、DROP),后续规则不再检查。这意味着规则顺序直接决定行为结果。

常见错误现象:iptables -A INPUT -p tcp --dport 22 -j ACCEPT 加在最后,但前面已有 -j DROP,导致 SSH 连接被拦。

  • 新增规则用 iptables -I 插入开头,比 -A 追加更可控
  • 调试时用 iptables -L -n --line-numbers 查看编号和匹配计数,确认哪条规则生效了
  • 默认策略(POLICY)是兜底逻辑,它只在所有规则都不匹配时才触发

匹配条件是“与”关系,多个 -m 模块可叠加但需注意加载顺序

一条规则里的所有匹配项(如 -s、--dport、-m state --state ESTABLISHED)必须同时成立,才算匹配成功。但不同扩展模块(-m)之间有隐含依赖:比如 -m conntrack 需要连接跟踪子系统已启用,-m iprange 不能和 -s 同时用于源地址限定。

使用场景:封禁某 IP 段的非 ESTABLISHED 连接,但放行已建立的回包。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • -m state --state NEW 已被弃用,应改用 -m conntrack --ctstate NEW
  • -m multiport 只支持单个 --dports 或 --sports,不能混用
  • 内核未加载对应模块(如 xt_conntrack)时,含 -m conntrack 的规则会报错或静默忽略

内置链的触发时机由内核网络栈路径决定,不是所有包都走同一链

一个 TCP SYN 包进入本机,走的是 INPUT 链;但若该机器开启转发且目标是另一台主机,则走 FORWARD 链;而本机发出的包走 OUTPUT 链。很多人误以为“所有进来的包都进 INPUT”,忽略了 DNAT 或转发场景。

典型陷阱:做了 DNAT(PREROUTING 中 -j DNAT)后,目的 IP 已改变,后续匹配基于新地址,但 INPUT 链看到的是修改后的地址 —— 这容易导致规则写错目标端口或 IP。

  • PREROUTING 和 POSTROUTING 属于 raw、mangle、nat 表,filter 表没有它们
  • DNAT 后的包在 INPUT 链中匹配的是“转换后的目的地址”,不是原始地址
  • 本地进程发往 127.0.0.1 的包不经过 FORWARD 或 PREROUTING,只走 OUTPUT 和 INPUT(环回)

规则不生效?先查 conntrack 状态和 raw 表干扰

很多看似“写了规则却没效果”的问题,根源不在 filter 表本身,而在连接跟踪或早期表(raw)提前截断了流程。例如 raw 表中的 -j NOTRACK 会让包跳过连接状态判断,导致 -m conntrack 规则永远不匹配。

性能影响:开启 nf_conntrack 会带来一定开销,高并发短连接场景下可能成为瓶颈;而关闭它又会让状态类规则失效。

  • 检查是否启用了 raw 表规则:iptables -t raw -L -n
  • 查看当前连接跟踪条目:conntrack -L | head -20,确认状态是否符合预期(如 ESTABLISHED、INVALID)
  • 临时清空连接跟踪表:conntrack -F(慎用,会中断现有连接)
规则顺序、模块依赖、网络路径、连接跟踪 —— 这四个点串起来,基本覆盖了 iptables 匹配机制里最容易卡住人的地方。实际调规则时,别急着改 filter,先跑一遍 iptables -t raw -L -n 和 conntrack -L,往往比重写十遍 -A INPUT 更快定位问题。

热门AI工具

更多
UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6067

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2568

2023.08.10

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

854

2023.11.24

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4210

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3553

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2793

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6850

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

6482

2023.07.06

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn