我大概清楚一点就是从内网出去的时候用POSTROUTING进来的时候用PREROUTING,可是做透明代理的时候确是用PREROUTING。这是为什么呢?
回复: sunnygg
pre还是post是根据数据包的流向来确定的。

通常内网到外网是post,外望到内网是pre,但是外还是内只是个相对概念,在一定条件下是可以转换的。落实到网卡上,对于每个网卡数据流入的时候必然经过pre,数量流出必然经过post。

透明代理的原理是将内网到外网的网页访问请求进行重定向,将内网的请求转发回内网的代理服务器,代理服务与网关又是一体,如果使用post进行处理,那么数据就流出了,透明代理设置也就失败了,因此必须在数据流入的时候改写规则,才能及时响应处理请求。

回复:
POSTROUTING是源地址转换,要把你的内网地址转换成公网地址才能让你上网。

PREROUTING是目的地址转换,要把别人的公网IP换成你们内部的IP,才让访问到你们内部受防火墙保护的机器。

回复:
1,你首先要明白什么是"PREROUTING" ,什么是"POSTROUTING",我们可以简单的用下面的关系来表示:

源地址发送数据--> {PREROUTING-->路由规则-->POSTROUTING} -->目的地址接收到数据

当你使用:iptables -t nat -A PREROUTING -i eth1 -d 1.2.3.4 -j DNAT --to 192.168.1.40
时,你访问1.2.3.4,linux路由器会在“路由规则”之前将目的地址改为192.168.1.40,并且Linux路由器(iptables)会同时记录下这个连接,并在数据从192.168.1.40返回时,经过linux路由器将数据发送到那台发出请求的机器。所以你的"POSTROUTING"规则没有起作用。

而"POSTROUTING"是“路由规则”之后的动作。

2,你最好能有个详细的网络拓扑图,这样我可以更好的给你解释。

3,我可以具一个简单的例子说明"PREROUTING"和"POSTROUTING"的不同应用环境:

3.1 PREROUTING的应用,
一般情况下,PREROUTING应用在普通的NAT中(也就是SNAT),如:你用ADSL上网,这样你的网络中只有一个公网IP地址(如:61.129.66.5),但你的局域网中的用户还要上网(局域网IP地址为:192.168.1.0/24),这时你可以使用PREROUTING(SNAT)来将局域网中用户的IP地址转换成61.129.66.5,使他们也可以上网:
iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j SNAT 61.129.66.5

3.2 POSTROUTING的应用,
POSTROUTING用于将你的服务器放在防火墙之后,作为保护服务器使用,例如:
A.你的服务器IP地址为:192.168.1.2;
B.你的防火墙(Linux & iptables)地址为192.168.1.1和202.96.129.5

Internet上的用户可以正常的访问202.96.129.5,但他们无法访问192.168.1.2,这时在Linux防火墙里可以做这样的设置:
iptables -t nat -A POSTROUTING -d 202.96.129.5 -j DNAT 192.168.1.2

结:最要紧的是我们要记住PREROUTING是“路由规则”之前的动作,POSTROUTING是“路由规则”之后的动作!

 
本文: 总结、整理来自互联网

Linux prerouting和postrouting的区别的更多相关文章

  1. Linux编程return与exit区别

    Linux编程return与exit区别 exit  是用来结束一个程序的执行的,而return只是用来从一个函数中返回. return return 表示从被调函数返回到主调函数继续执行,返回时可附 ...

  2. windows系统以及linux系统的优缺点以及区别

    一.Linux以及Windows系统的优缺点对比   Windows Linux 优点 Windows Server系统相对于其他服务器系统而言,极其易用,极大降低使用者的学习成本. Linux系统是 ...

  3. 【转载】LINUX 和 WINDOWS 内核的区别

    LINUX 和 WINDOWS 内核的区别 [声明:欢迎转载,转载请注明出自CU ACCESSORY http://linux.chinaunix.net/bbs/thread-1153868-1-1 ...

  4. linux popen()与system()的区别

    linux popen()与system()的区别 popen() 可以在调用程序和POSIX shell /usr/bin/sh 要执行的命令之间创建一个管道(请参阅sh-posix(1) ). p ...

  5. Linux useradd 与 adduser的区别, /sbin/nologin 与 /bin/bash

    摘自:https://blog.csdn.net/danson_yang/article/details/65629948 Linux useradd 与 adduser的区别, /sbin/nolo ...

  6. Linux命令--mysqld_safe和mysqld区别

    Linux命令--mysqld_safe和mysqld区别 学习了:https://blog.csdn.net/Aaroun/article/details/78143832 mysqld_safe ...

  7. Linux中终端和控制台区别

    Linux中终端和控制台区别: 终端:英文名叫terminal 控制台:英文名叫console 两者区别要从以前的多人使用的计算机开始 以前,由于计算机很昂贵,所用一台计算机一般由多个人同时使用.这样 ...

  8. linux文本界面../和./的区别

    linux文本界面../和./的区别 ../代表的是上一个目录 ./代表的当前目录

  9. 从Docker在Linux和Windows下的区别简单理解Docker的层次结构

    上篇文章我们成功在Windows下安装了Docker,输出了一个简单的Hello World程序.本文中我们将利用Docker已有的云端镜像training/webapp来发布一个简单Python的W ...

随机推荐

  1. NABCD——竞争性需求分析的框架

    最近在读邹欣老师的书<构建之法>,读到很多地方,相当有感触,有种一拍大腿“啊,他说的太对了”的感觉,但都疏于记录,今天又看到一个一拍大腿特带感的一节,决定记录下来. 竞争性需求分析的框架— ...

  2. java日期处理总结

    Java日期时间使用总结   一.Java中的日期概述   日期在Java中是一块非常复杂的内容,对于一个日期在不同的语言国别环境中,日期的国际化,日期和时间之间的转换,日期的加减运算,日期的展示格式 ...

  3. new-nav-css

    header:before, header:after ,.navigation:before, .navigation:after,.nav-row:before, .nav-row:after,. ...

  4. 从零开始设计SOA框架(三):请求参数的加密方式

    第二章中说明请求参数有哪些,主要是公共参数和业务参数,服务端需要对参数进行效验,已验证请求参数的合法性 参数效验前先解释下以下参数: 1.参数键值对:包括公共参数.业务参数      1.公共参数:按 ...

  5. 【HDU 3966】Aragorn's Story(未完待续)

    我无限Runtime Error(ACCESS_VIOLATION).不知道怎么搞得/(ㄒoㄒ)/~~ #pragma comment(linker, "/STACK:1024000000, ...

  6. "use strict"

    "use strict";//严格模式 <!doctype html> <html> <head> <meta charset=" ...

  7. Java基础-四大特性理解(抽象、封装、继承、多态)

    抽象: 象就是有点模糊的意思,还没确定好的意思. 就比方要定义一个方法和类.但还没确定怎么去实现它的具体一点的子方法,那我就可以用抽象类或接口.具体怎么用,要做什么,我不用关心,由使用的人自己去定义去 ...

  8. Session的异常

    既然这一天就这么废了,那就多说一些吧!其实session也是有潜在的问题的.Session销毁的三种情况: (1)超时:超过30分钟 (2)服务器非正常关闭,如果自己手动stop service而不是 ...

  9. 《驾驭Core Data》 第三章 数据建模

    本文由海水的味道编译整理,请勿转载,请勿用于商业用途.    当前版本号:0.1.2 第三章数据建模 Core Data栈配置好之后,接下来的工作就是设计对象图,在Core Data框架中,对象图被表 ...

  10. Jquery-easyUI-datagrid参数之 queryParams

    http://blog.163.com/xpf_designer/blog/static/19213618920117784055668/ Html <div  region="cen ...