当前位置: 首页 > news >正文

iptables 里INPUT、OUTPUT、FORWARD 三个链(Chain)详解

iptables 里,INPUTOUTPUTFORWARD 是最核心的三个链(Chain),它们定义了数据包在本机处理过程中的三个关键路径。下面我会通俗地解释它们的含义和作用:


🔁 总体概念:什么是链(Chain)?

iptables 把数据包的处理过程分为多个“链”,每条链就是一组规则,规则之间按顺序匹配。三大最常用的链如下:

链名称作用方向数据包路径
INPUT进入本机外部数据包 → 本地程序
OUTPUT从本机发出本地程序 → 外部网络
FORWARD本机转发(不处理)外部设备 → 外部设备(经由本机)


📥 1. INPUT 链

作用:控制访问本机的网络流量

  • 只要是别人访问你(比如你开了一个 web 服务,别人访问你的 80 端口),就会经过 INPUT 链。

  • 适用于:SSH、HTTP、HTTPS、Ping 等所有入站连接

示例:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

允许其他主机访问本机的 22 端口(SSH)。


📤 2. OUTPUT 链

作用:控制本机发出的流量

  • 当你在本机执行 curl、ping、apt-get、wget、ssh 等命令时,这些“出站”请求都会经过 OUTPUT 链。

示例:

iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

允许本机访问外部 HTTP(80 端口)网站。


🔀 3. FORWARD 链

作用:控制“路由转发”流量(本机作为中转,不是源也不是目的)

  • 本机如果做了网关、路由器、NAT、VPN、Docker 桥接等转发行为,就会用到 FORWARD 链。

  • 比如一个包从网卡 eth0 进来,经由本机,从网卡 eth1 转出去,就会用到 FORWARD 链。

示例:

iptables -A FORWARD -s 192.168.1.0/24 -d 10.0.0.0/24 -j ACCEPT

允许本机转发来自 192.168.1.* 到 10.0.0.* 的流量。


🧠 总结对比

链名称流量方向是否发给本机是否来自本机示例
INPUT入站流量✅ 是❌ 否别人访问你
OUTPUT出站流量❌ 否✅ 是你访问别人
FORWARD转发流量❌ 否❌ 否本机充当中转(如路由器)

http://www.xdnf.cn/news/1247707.html

相关文章:

  • MATLAB实现的机载合成孔径雷达回波生成和处理
  • zyh贪心类题目补题报告
  • 灰色优选模型及算法MATLAB代码
  • GoLand 项目从 0 到 1:第五天 —— 角色权限中间件实现与事务控制
  • 三极管三种基本放大电路:共射、共集、共基放大电路
  • 使用公众号的消息模板给关注用户发消息
  • Pycaita二次开发基础代码解析:参数化模板创建与设计表驱动建模
  • RHCA03--硬件监控及内核模块调优
  • MCP与Function Calling
  • SAP FI模块凭证增强逻辑的策略
  • C++ string类
  • NLP自然语言处理 02 RNN及其变体
  • GPS信号捕获尝试(上)
  • 基于 Ubuntu 的 Linux 系统中 Vivado 2020.1 下载安装教程
  • Modbus tcp 批量写线圈状态
  • 【STM32】HAL库中的实现(四):RTC (实时时钟)
  • ES 模块动态导入
  • BeanFactory 和 ApplicationContext 的区别?
  • centos通过DockerCompose搭建开源MediaCMS
  • 如何让 RAG 检索更高效?——大模型召回策略全解
  • 字符串匹配--KMP算法
  • Arxiv-Daily
  • 【机器学习】算法调参的两种方式:网格搜索(枚举)、随机搜索
  • Spring AI 系列之三十六 - Spring AI Alibaba-nl2sql
  • 【Git学习】入门与基础
  • 调试|谷歌浏览器调试长连接|调试SSE和websocket
  • SELinux加固Linux安全
  • python的高校班级管理系统
  • 技术部实习总结
  • 暑期算法训练.14