postrouting和prerouting的区别以及透明代理

一、源

  在学习鸟哥的linux私房菜NAT部分的时候为了加深对postrouting和prerouting的理解,上网查了相关的一些资料。有一篇博文写的很好,给了我很多的启示:/jis1237/article/details/17676659(csdn),下面谈谈自己的所得。

二、关键词链接

  访问外网---发一个数据报---路由规则审核一哈---snat( 源地址转换)---postrouting(路由规则之后的动作)---从内网出

  外网访问内网---发送一个数据报---dnat (目的地址转换)---prerouting(路由规则之前的动作)---路由规则审核一哈---进内网
  细想一下上述过程:内网想要访问外网网页,发送一个数据报,首先路由规则要审核一哈你能不能发,ok了,能了才会继续做snat,所以是路由规则之后的动作。外网想要访问内网服务器,但是其目的ip确是公网的ip,一定要先经过dnat转换成私有ip后,接下来路由规则再审核你能不能进来,所以dnat是路由规则之前的动作。
  接受路由规则审核的是私有ip+外网ip的组合。
  上述理解可以知道snat为什么对应的是postrouting,dnat为什么对应的是prerouting。或者换句话说:snat(原地址转换)在路由规则之后,dnat(目的地址转换)在路由规则之前。也可以说先路由规则,再源地址转换;先目的地址转换,再路由规则。

  上述的内网和外网是相对的概念,有两个局域网A和B,对于A内的主机,A是内网,B是外网;对于B内的主机,B是内网,A是外网。

三、透明代理

  透明代理的原理:你想要从内网访问外网的网页,透明代理会把你的请求重定向,转发到内网的某一服务器,实际的过程相当于更改数据报的目的地址,所以说经过了dnat的过程,所以用的是prerouting。

  虽说上述的过程是你想访问外网,即从内网出,有点postrouting的感觉.....

  所以切记不要用什么内网出,内网进去理解prerouting和postrouting。

  需求:用内网的192.168.1.110做访问外网1.2.3.4的透明代理   具体的代码是:

iptables -t nat -A PREROUTING -i eth0 -d 1.2.3.4 -j DNAT --to-destnation 192.168.1.110

  

原文地址:https://www.cnblogs.com/mengmengzhang/p/9349685.html

时间: 2024-11-10 00:21:46

postrouting和prerouting的区别以及透明代理的相关文章

透明代理、正向代理、反向代理的区别说明

代理方式有三种:正向代理.透明代理和反向代理.反向代理比较容易理解,毕竟是运维必掌握的知识,但是对正向代理.透明代理可能比较模糊,所以主要解惑正向代理和透明代理. 透明代理 透明代理(transparent proxy),看名字就知道这个代理服务器是透明的,透明代理其实也叫做内网代理(inline proxy).拦截代理(intercepting proxy)以及强制代理(force proxy).透明代理和正向代理的行为很相似,但细节上有所不同.透明代理将拦截客户端发送的请求,拦截后自己代为访

正向代理,反向代理和透明代理的区别

一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端[用户A]和原始服务器(origin server)[服务器B]之间的服务器[代理服务器Z],为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理.如下图1.1 (图1.1) 从上面的概念

透明代理、匿名代理、混淆代理、高匿代理有什么区别?

这4种代理,主要是在代理服务器端的配置不同,导致其向目标地址发送请求时,REMOTE_ADDR, HTTP_VIA,HTTP_X_FORWARDED_FOR三个变量不同. 1.透明代理(Transparent Proxy) REMOTE_ADDR = Proxy IP HTTP_VIA = Proxy IP HTTP_X_FORWARDED_FOR = Your IP 透明代理虽然可以直接“隐藏”你的IP地址,但是还是可以从HTTP_X_FORWARDED_FOR来查到你是谁. 2.匿名代理(A

llinux企业常用服务---squit透明代理

注意: 在传统代理的基础上配置 透明代理需指定网关 1.配置透明代理: 1)修改配置文件:支持透明代理 [[email protected] ~]# vi /etc/squid.conf http_port 192.168.100.150:3128 transparent   ##将http_port 3128修改为支持透明代理 [[email protected] ~]# /etc/init.d/squid reload [[email protected] ~]# netstat -utpl

金庸武功之“碧血剑法”----squid做透明代理

一.试验目的:公司阿里云环境要求之开放一个代理服务器,其他服务器不允许有外网IP 二.环境拓扑: A:代理服务器:(利用squid做透明代理) (centos7.2) [[email protected] squid]# ip a eth0:10.30.204.122 eth1:116.62.XX.XX B:客户端服务器:(centos7.2) [[email protected] squid]# ip a eth0:10.30.204.90 三.试验环境准备(A,B都执行) yum  -y u

CentOS下Privoxy和Iptables 实现透明代理,修改http-header

Linux下目前使用最多的HTTP代理当属Squid了,这边有个需要修改http-header的需要,前提是要做http的透明代理,squid实现透明代理很容易,但修改http-header没找到方法. Privoxy在修改http-header方面很善长,但透明代理如何实现网上好像还没有成熟的方法.比起修改http-header,透明代理应该实现起来更简单一些,于是研究了一下,下面详细说一说. 一.环境说明: 1.系统: CentOS 6.5 32位(64位在装privoxy的时候经常报错,直

squid 透明代理配置

透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改变你的request fields(报文),并会传送真实IP,多用于路由器的NAT转发中. 透明代理的原理是这样的:1. 假设A为内部网络客户机2. B为外部网络服务器,B提供的服务为httpd服务,监听端口为803. C为代理服务器(也是我们的网关),假如代理服务器提供服务端口为3128 过程: 当A向B的80端口请求数据时,TCP连接请求要先经过C,C看到A请求的是B的80端口时,C由于已经设置了转发规则,所以C会把A的请求80端口

squid 透明代理,反向代理,acl访问控制

squid 的三种代理方式:1普通代理:2透明代理  3反向代理: cleint(192.168.1.20)----> eth0(192.168.1.10)|  squid   |eth1(1.1.1.254)  ---->server(1.1.1.1) 1.普通代理:squid是代替内网 访问外网:  缓存:加快内网的访问速度: 服务器端配置:ip 1.1.1.1 关闭防火墙和selinux [[email protected] ~]# /etc/init.d/iptables stop i

使用squid配置透明代理并对上网行为进行控制

使用Squid配置透明代理 环境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_64 1.检查squid是否默认安装,没有安装先安装 rpm -qa squid 假如查找不到,就安装squid: yum install squid 2.配置虚拟机的网络,一个网卡是内网,另一个是外网 内网:eth0 ip:192.168.10.209 netmask:255.255.255.0 gateway:192.168.10.1 外网:eth1 ip:10.10.10.1