IPTABLES传输数据包的过程

大概过程如图所示:

1. 数据包进入网卡时,首先进入PREROUTING链,linux内核会判断数据包的目的IP是否为本地主机

2. 如果数据包的目的IP是本地主机,那么数据包会沿图向下移动,进入INPUT链中,数据包进入INPUT链中,本地主机的所有线程都会收到它,本地主机的进程也会产生数据包,  这些数据包会经过OUTPUT链,然后到达POSTROUTING链从网卡中出去。

3. 如果数据包的目的IP不是本地主机,则数据包是要转发出去,且linux内核允许转发,数据包就会如图所示向右移动,进入FORWARD链中,然后到达POSTROUTING链从网卡中  出去

从上可以得到,当LINUX充当路由器时,数据包走的路线是PREROUTING——FORWARD——POSTROUTING线路。

iptables传输数据包的过程的更多相关文章

  1. rpm包安装过程中依赖问题“libc.so.6 is needed by XXX”解决方法

    rpm包安装过程中依赖问题"libc.so.6 is needed by XXX"解决方法 折腾了几天,终于搞定了CentOS上的Canon LBP2900打印机驱动.中间遇到了一 ...

  2. c#有关udp可靠传输(包传输数据包) 升级

    在c#有关udp可靠传输(包传输数据包)我们讨论,UDP包的发送,可是上一个程序有一个问题.就是数据比較大.一个Message类序列化后都有2048B,而实际的数据量也就只是 50B罢了,这就说明当中 ...

  3. SRTP参数及数据包处理过程(转)

    源: SRTP参数及数据包处理过程

  4. ubuntu 可能的依赖包,安装过程中根据需要安装

    /*************依赖包安装****************/下面是可能的依赖包,安装过程中根据需要安装 build-essential - libglib2.-dev libpng3 li ...

  5. [Linux] 028 源码包安装过程

    1. 安装准备 安装 C 语言编译器 下载源码包 如:apache 相应源码包下载地址 2. 安装注意事项 源代码保存位置:/usr/local/src 软件安装位置:/usr/local 如何确定安 ...

  6. 基于linux下的NIST数字测试包安装过程

    基于linux下的NIST数字测试包安装过程 1. 首先解决windows文件不能粘贴到Ubuntu的问题 选择利用VMware Tools进行解决 打开虚拟机VMware Workstation,启 ...

  7. iptables - IP包过滤器管理

    总览 iptables -ADC 指定链的规则 [-A 添加 -D 删除 -C 修改] iptables - RI iptables -D chain rule num[option] iptable ...

  8. 计算机网络参考模型,IP地址及MAC地址查看方法,数据包封装过程

    分层思想 首先,计算机网络参考模型,是基于分层思想而出现的.分层思想,就是将复杂流程分解为几个功能单一的子过程. 优点: 可以让整个流程更加清晰, 让复杂问题简单化, 更容易发现问题,并真对性的解决问 ...

  9. sk_buff封装和解封装网络数据包的过程详解

    转自:http://www.2cto.com/os/201502/376226.html 可以说sk_buff结构体是Linux网络协议栈的核心中的核心,几乎所有的操作都是围绕sk_buff这个结构体 ...

随机推荐

  1. [js常用]将秒转化为时分秒

    内容引入至网络 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...

  2. c#+arcAE对图层进行各种渲染操作

    转载:http://blog.sina.com.cn/s/blog_6023833e0100t5t0.html using System;using System.Collections.Generi ...

  3. 注重结构、语义、用户体验的Tab选项卡

    效果如下图所示: HTML code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  4. CentOS 7 防火墙端口配置

    CentOS 7 防火墙端口配置查看防火墙是否开启systemctl status firewalld 若没有开启则开启systemctl start firewalld 查看所有开启的端口firew ...

  5. elixir case cond if

    case 允许我们对很多模式的值进行比较 直到找到匹配的 -->不要想成 switch  case iex(58)> x = 11iex(59)> case 10 do...(59) ...

  6. 分享泛微公司OA系统用于二次开发的sql脚本

    本单位用的oa系统就是泛微公司的oa协同办公平台,下面是我对他进行二次开发统计用到的写数据库脚本,只做开发参考使用,对于该系统的二次开发技术交流可以加我q:2050372586 [仪表盘]格式sql编 ...

  7. get_digits

    # coding=utf-8# 一.def digits(n): list1 = [] for each in n: list1.append(each) return list1print(digi ...

  8. python中的字符串编码问题——3.各操作系统下的不同编码方式

    各操作系统下的不同编码方式  先看一下 linux,python2.7 >>> B = b'\xc3\x84\xc3\xa8' >>> B.decode('utf- ...

  9. CSS 小结笔记之盒子模型

    网页标签可以看成是一个个盒子,页面设计就像垒积木一样,在网页中将盒子摆好显示出来.在浏览器中可以很清楚的去看到一个标签的盒子,具体方法如下: 打开浏览器的开发人员工具,在Elements中选中一个标签 ...

  10. Linux 加载卷组

    root 用户下执行: vgchange -ay vgdatamount /u01 vgdisplay 查看卷组