转载注明出处: 

1.概念和工作原理 

  iptables是Linux系统中用来配置防火墙的命令。iptables是工作在TCP/IP的二、三、四层,当主机收到一个数据包后,数据包先在内核空间处理,若发现目标地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目标不是自身,则会将包丢弃或进行转发。

1.1 四表:

  •  filter(用于过滤)
  • nat(用于 NAT)
  • mangle(用于修改分组数据)
  • raw(用于原始数据包)

  最常用的是filter 和 nat。

1.2 五链:

  • PREROUTING:用于路由判断前所执行的规则,比如,对接收到的数据包进行 DNAT。
  • POSTROUTING:用于路由判断后所执行的规则,比如,对发送或转发的数据包进行 SNAT 或 MASQUERADE。
  • OUTPUT: 类似于 PREROUTING,但只处理从本机发送出去的包。
  • INPUT: 类似于 POSTROUTING,但只处理从本机接收的包。
  • FORWARD

  流入本机:PREROUTING --> INPUT-->用户空间进程
  流出本机:用户空间进程 -->OUTPUT--> POSTROUTING
  转发:PREROUTING --> FORWARD --> POSTROUTING

  内网至外网用postrouting SNAT

  外网至内网用prerouting DNA

  下图中白色背景方框,则表示链(chain)

2.iptables命令

2.1 链管理:

  -N: new 自定义一条新的规则链

  -X: delete 删除自定义的空的规则链

  -P:policy 设置默认策略

   ACCEPT:接受

  DROP:丢弃

  -E:重命名自定义链

2.2 查看:

  -L: list

  -n:以数字格式显示地址和端口号

  -v:详细信息

2.3 规则管理:

  -A : append 追加

  -I:insert 插入

  -D:delete 删除

  -F:flush 清空指定规则链

  -R:replace 替换指定链上的规则编号

  -Z: zero :置零

3.iptables命令使用

  iptables -L 列出规则,默认为filter表的规则。

  iptables -t nat -L 列出nat表的规则。

[root@node100 ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere anywhere ADDRTYPE match dst-type LOCAL Chain INPUT (policy ACCEPT)
target prot opt source destination Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DOCKER all -- anywhere !loopback/8 ADDRTYPE match dst-type LOCAL Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 anywhere Chain DOCKER (2 references)
target prot opt source destination
RETURN all -- anywhere anywhere

  iptables中的第一个选项可以是-A, 表明向链(chain)中添加一条新的规则,也可以是-I,表明将新的规则插入到规则集的开头。接下来的参数指定了链。

  所谓链就是若干条规则的集合

  OUTPUT链它可以控制所有的出站流量(outgoing traffic)。

  INPUT链它能够控制所有的入站流量(incoming traffic)。

  •   -d指定了所要匹配的分组目的地址,
  •   -s指定了分组的源地址。
  •   -j指示iptables执行到特定的处理(action)

iptables 工作过程整理的更多相关文章

  1. 《CPU的工作过程》

    本文转载自inter官方网址:https://software.intel.com/zh-cn/articles/book-Processor-Architecture_CPU_work_proces ...

  2. 测试或运维工作过程中最常用的几个linux命令?

     大家在测试工作过程中,可能会遇到需要你去服务器修改一些配置文件,譬如说某个字段的值是1 则关联老版本,是0则关联新版本,这时候你可能就需要会下vi的命令操作:或者查看session设置的时长,可能需 ...

  3. Iptables工作原理使用详解

    Iptables防火墙简介 Iptables名词和术语 Iptables工作流程 基本语法 Filter 参数说明 NAT表: Icmp协议 TCP FLAG 标记 什么是状态检测 iptables的 ...

  4. 主动模式下FTP的详细工作过程(转) 挺详细

    主动模式下FTP的详细工作过程   PORT FTP是常用的FTP工作方式,当客户端的连接请求到来时,FTP服务器会利用默认的21端口与客户端建立连接,该连接属于命令通道,利用该通道来下达控 制指令: ...

  5. Nginx reopen reload作用及工作过程

    http://www.iigrowing.cn/nginx-reopen-reload-zuo-yong-ji-gong-zuo-guo-cheng.html Nginx reopen reload作 ...

  6. LTE工作过程

    LTE工作过程 一.LTE开机及工作过程如下图所示: 二.小区搜索及同步过程 整个小区搜索及同步过程的示意图及流程图如下: 1)   UE开机,在可能存在LTE小区的几个中心频点上接收信号(PSS), ...

  7. DHCP工作过程详解

    DHCP动态主机配置协议的作用我想作为网管的兄弟们都应该知道了,这里我就不多废话了,今天我要谈的是DHCP的工作过程,了解了工作过程,要排除故障就容易了.   一.DHCP客户机初始化: 1. 寻找D ...

  8. OpenWrt的主Makefile工作过程

    OpenWrt是一个典型的嵌入式Linux工程,了解OpenWrt的Makefile的工作过程对提高嵌入式Linux工程的开发能力有极其重要意义. OpenWrt的主Makefile文件只有100行, ...

  9. 《Android开发艺术探索》读书笔记 (9) 第9章 四大组件的工作过程

    第9章 四大组件的工作过程 9.1 四大组件的运行状态 (1)四大组件中只有BroadcastReceiver既可以在AndroidManifest文件中注册,也可以在代码中注册,其他三个组件都必须在 ...

  10. Activity工作过程

    Activity工作过程: Activity.startActivity--> Activity.startActivityForResult--> Instrumentation.exe ...

随机推荐

  1. 在linux系统中,对标准输出(stdout,文件描述符为 1)和标准错误(stderr,文件描述符为 2)重定向到文件

    请参考:2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的区别 下面的是本人浅尝辄止了,并非全貌,还是上面的文章说的比 ...

  2. Java集合框架总结图

    Collection 接口的接口(对象集合) ├---List 接口:元素都有索引,可以重复,有序(迭代器顺序). │------├ LinkedList 接口实现类, 双向链表, 查询慢,增删快,效 ...

  3. 树莓派4B-控制直流电机

    树莓派4B-控制直流电机 一.硬件介绍 树莓派 L298N电机驱动模块 直流电机 外接电源 杜邦线 二.硬件连接 原理图: 注意:ENA和ENB的跳冒必须安上去,如果没有拿杜邦线连通! 三.代码编写 ...

  4. sheetjs导出表格时间错误问题

    最近使用sheetjs,前端web去导出生成excel,xlsx表格.其中遇到一种问题,那就是时间出错了!比如多出8小时43秒,少了43秒.看到这种问题的时候,我也一脸懵逼.先上图! 不过在有些人电脑 ...

  5. 洛谷P1057

    #include<iostream> #include<utility> using namespace std; typedef long long ll; #define ...

  6. 解决方案 | 外接键盘win+d失效,绿联键盘win+d,win+e失效

    按下fn + 右边的win键 即可解决.如下图所示.

  7. 解决方案 | AutoCAD 版本+版本号+受支持的 .NET SDK版本+.NET Framework版本

    关于 Managed .NET 兼容性 Managed .NET 应用程序通常与扩展基于 AutoCAD 的产品的行为和功能的公司和第三方应用程序关联. 在移植到最新版本后,并非所有 .NET 应用程 ...

  8. 如何去除字符串中的 "\n" ?80% 的同学错了!

    大家好,我是鱼皮,今天分享一个小知识. 我最近负责的工作是设计一个 SQL 解析引擎.简单来说,就是将一个 SQL 表达式字符串,解析为一颗对象树,从而执行查询等一系列操作. 在最开始,我就遇到了一个 ...

  9. QT 开发快速入门

    本人 qt 业余,但有的时候要用到 qt,而又没有系统的学习,用到哪里看哪里. 环境: vs2012+ qt-vsaddins+qt5.5 qt 的按钮点击事件出发的基本要素: 1. 按钮触发函数为 ...

  10. .NET 中高效 Excel 解决方案 MiniExcel

    前言 MiniExcel 是一个用于 .NET 平台的轻量级.高性能的库,专注于提供简单易用的 API 来处理 Excel 文件.以下是 MiniExcel 的特点总结: 轻量级与高效:MiniExc ...