iptable学习
参考文档
netfilter/iptables架构

| 位置 | 钩子函数/规则链 | 说明 |
|---|---|---|
| 数据包刚刚进入网络层的位置 | PREROUTING | 在这里处理目标地址转换 |
| 经过路由判断,数据包从内核流入本机用户空间的位置 | INPUT | 在这里处理INPUT包过滤 |
| 数据包从本机用户空间进程发出的位置,后接路由判断出口的网络接口 | OUTPUT | 在这里处理OUTPUT包过滤 |
| 经过路由判断,数据包不进入本机用户空间,只是进行转发的位置 | FORWARD | 在这里处理FORWARD包过滤 |
| 数据包将通过网络接口出去的位置 | POSTROUTING | 在这里处理源地址转换 |

为了方便管理钩子函数(黄色模块链),iptables按照钩子函数实现的功能,将其分别存储于4张表中(蓝色模块),类似于编程中指向链表的指针数组,链表存在优先级顺序
| 表 | 功能 | 涉及链 |
|---|---|---|
| Filter | 数据包的过滤 | INPUT、OUTPUT、FORWARD |
| NAT | 网络地址的转换 | PREROUTING(DNAT)、POSTROUTING(SNAT) |
| Mangle | 修改数据包的原始数据,一般用于防火墙标记 | PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING |
| Raw | 配置免除 | PREROUTING、OUTPUT |
iptables命令语法
# iptables [-t table] command [chain] [rules] [-j target]

规则查询
### 查询filter表规则
# iptables -t filter -L
### 查询filter表INPUT链规则
# iptables -t filter -L INPUT
### 查询filter表INPUT链详细规则
# iptables -t filter -vL INPUT
### 查询filter表INPUT链详细规则,并显示规则编号
# iptables -t filter --line-number -vL INPUT
### 查询filter表INPUT链规则以及默认规则
# iptables -t filter -nL INPUT
### 说明
pkts: 对应规则匹配到的报文个数
bytes: 对应规则匹配到的报文包的大小总和
target: 匹配到对应规则时的动作
prot: 表示规则对应的协议
opt: 表示规则对应的选项
in: 表示需要进行规则匹配的数据包流入的网卡
out: 表示需要进行规则匹配的数据包流出的网卡
source: 表示规则对应的源地址(IP/网段)
destination: 表示规则对应的目标地址(IP/网段)
policy:表示当前链的默认策略
iptable学习的更多相关文章
- MongoDB学习笔记—Linux下搭建MongoDB环境
1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...
- LInux iptables学习
作者原文 : http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多 ...
- CentOS学习笔记--Tomcat安装
Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...
- Web后端 JAVA学习之路
1.Java分类 Java按应用来分,可以分为J2ME(手机版),J2SE(标准版),J2EE(企业版)三部分. ・J2ME:已经被安卓开发取代. ・J2SE:Java的核心类,其中包括桌面应用,但一 ...
- MTK 使用iptable 命令来完成网络路由(android WIFI/4G分享网络)
很多时候,总有些奇怪的需求,这时候是发挥我们的聪明才智的时候!! 有客户的需求是: 公网 WIFI 4G/其他网络 以太网1 以太网2 内部设备 描述下需求:现今有一个控制设备,里面有WIFI,物联网 ...
- 大数据下基于Tensorflow框架的深度学习示例教程
近几年,信息时代的快速发展产生了海量数据,诞生了无数前沿的大数据技术与应用.在当今大数据时代的产业界,商业决策日益基于数据的分析作出.当数据膨胀到一定规模时,基于机器学习对海量复杂数据的分析更能产生较 ...
- Linux防火墙iptables学习
http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...
- Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)
Linux世界介绍 给自己定级 门外汉: 不会安装操作系统 不会用虚拟机(安装和使用) 入门级: 熟悉常见的发行版,甚至装过而且能用一些特殊发行版(比如kali)做过一些简单的图形界面的使用. 会一些 ...
- 学习RadonDB源码(一)
1. 可能是开始也可能是结束 RadonDB是国内知名云服务提供商青云开源的一款产品,下面是一段来自官方的介绍: QingCloud RadonDB 是基于 MySQL 研发的新一代分布式关系型数据库 ...
随机推荐
- REST、DRF(View源码解读、APIView源码解读)
一 . REST 前言 1 . 编程 : 数据结构和算法的结合 .小程序如简单的计算器,我们输入初始数据,经过计算,得到最终的数据,这个过程中,初始数据和结果数据都是数据,而计算 ...
- spring-boot5代码
App.java package com.kfit.spring_boot_mybatis; import org.mybatis.spring.annotation.MapperScan; impo ...
- php基于swoole扩展的WebSocket
php的swoole的扩展可以实现WebSocket通信,方法如下 1.php添加swoole扩展: 一:两种安装方式:1>编译安装:1>wget http://pecl.php.net/ ...
- ubuntu下安装redis以及redis客户端在mac下的使用
ubuntu下安装redis http://blog.fens.me/linux-redis-install/ 此方式利用brew安装包去获取最新的rdm客户端 资源失效了 https://www.j ...
- callback机制之内核通知链表【转】
本文转载自:http://bbs.chinaunix.net/thread-2011776-1-1.html 1.通知链表简介 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生 ...
- mysql从删库到跑了
常用的数据库有哪些? oralce,sqlserver,mysql,db2 有钱就用oracle吧 oracle和mysql的区别:https://zhidao.baidu.com/question/ ...
- 51Nod 1486 大大走格子 —— 组合数学
题目链接:https://vjudge.net/problem/51Nod-1486 1486 大大走格子 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: ...
- Contiki 2.7 Makefile 文件(六)
5.第五部分 ifndef CONTIKI $(error CONTIKI not defined! You must specify where CONTIKI resides!) endif if ...
- 4.7 希尔(shell)排序法
4-7 ShellSort.c #include <stdio.h> #include "4-1 CreateData.c" //生成随机数的函数 #define AR ...
- gVIM+zencoding快速开发HTML/CSS/JS(适用WEB前端)
一.真正解决了UTF-8中文乱码的各种问题(菜单乱码,内容乱码,提示信息乱码),不用担心WIN用默认编码写的东西在Linux乱码,或在Linux(zh_CN.UTF-8时)写的东西在WIN下乱码.在A ...