Linux prerouting和postrouting的区别
通常内网到外网是post,外望到内网是pre,但是外还是内只是个相对概念,在一定条件下是可以转换的。落实到网卡上,对于每个网卡数据流入的时候必然经过pre,数量流出必然经过post。
透明代理的原理是将内网到外网的网页访问请求进行重定向,将内网的请求转发回内网的代理服务器,代理服务与网关又是一体,如果使用post进行处理,那么数据就流出了,透明代理设置也就失败了,因此必须在数据流入的时候改写规则,才能及时响应处理请求。
PREROUTING是目的地址转换,要把别人的公网IP换成你们内部的IP,才让访问到你们内部受防火墙保护的机器。
源地址发送数据--> {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是“路由规则”之后的动作!
转载于:https://www.cnblogs.com/wspblog/p/4297160.html
Linux prerouting和postrouting的区别相关推荐
- ebtables之BROUTING和PREROUTING的redirect的区别
ebtables和iptables实用工具都使用了Netfilter框架,这是它们一致的一方面,然而对于这两者还真有一些需要联动的地方.很多人不明白ebtales的broute表的redirect和n ...
- Linux进程与线程的区别 详细总结(面试经验总结)
首先,简要了解一下进程和线程.对于操作系统而言,进程是核心之核心,整个现代操作系统的根本,就是以进程为单位在执行任务.系统的管理架构也是基于进程层面的.在按下电源键之后,计算机就开始了复杂的启动过程, ...
- Linux进程与线程的区别
2019独角兽企业重金招聘Python工程师标准>>> Linux进程与线程的区别 cnyinlinux 本文较长,耐心阅读,必有收获! 进程与线程的区别,早已经成为了经典问题.自线 ...
- 【Linux】Linux简介以及 与UNIX区别
一直以来对Linux.Unix.linux内核.linux发行版的概念比较模糊,最近查找资料并经过自己的整理,主要总结了Linux和UNIX的区别和联系.内核和操作系统的关系.Linux操作系统和结构 ...
- 如何区分iptables的PREROUTING和POSTROUTING链
*mangle -A PREROUTING -i wlan0 -j TTL –ttl-inc 1 -A POSTROUTING -o wlan0 -j TTL –ttl-dec 1 COMMIT 上面 ...
- 从Docker在Linux和Windows下的区别简单理解Docker的层次结构
上篇文章我们成功在Windows下安装了Docker,输出了一个简单的Hello World程序.本文中我们将利用Docker已有的云端镜像training/webapp来发布一个简单Python的W ...
- linux服务器知识学习:Linux与Windows之间的区别
目前国内Linux更多的是应用于服务器上,而桌面操作系统更多使用的是Window. linux与Windows主要的区别如下: 从界面上来看, Windows界面统一,外壳程序固定所有Windows程 ...
- 103.107.189.XXX机房服务器linux和windows系统的区别:
机房服务器linux和windows系统的区别: 1.首先从界面上个人感觉windows的界面比linux漂亮,从视觉效果上来看windows给人感觉更好 2.软件的使用,linux软件都是开源的由全 ...
- centos linux 和 centos stream 的区别
文章目录 CentOS Linux 和 CentOS Stream 的区别 项目终止日期(EOL) 上游 vs 下游 更新频率 贡献方式 测试 CentOS Linux 和 CentOS Stream ...
- PREROUTING 和 POSTROUTING, SNAT 和 DNAT图文解析(非常清淅)
NAT (网络地址转换) 技术在平时是很多见的,如家庭中在使用路由器共享上网时,一般用的就是 NAT 技术,它可以实现众多内网 IP 共享一个公网 IP 上网.NAT 的原理 简单的说就是当内网主机访 ...
最新文章
- spring+mybatis整合读取不了配置文件
- 中国联通华东云数据中心—电气培训
- AgileConfig-1.5.5 发布 - 支持 JSON 编辑模式
- 图解elasticsearch原理转载自
- Coinbase 现“市场核弹级”漏洞,颁发25万美元奖励
- [20170515]数据库启动的一个疑问.txt
- Spring Boot的filter简单使用
- 什么是无卡支付、快捷支付、通用代扣?他们有什么区别?
- java写的小米商城_开发”小米商城官网首页”(静态页面)
- mib浏览器_大众汽车的第二代MIB信息娱乐系统图解
- 中国慕课moocpython答案_中国大学慕课mooc2020用Python玩转数据题目答案
- cabbage liunx学习之路之用户与用户组管理篇
- 计算机基础知识常用口诀,三句口诀!记住大部分常用的电脑快捷键!
- 2017清华大学计算机考研机试答案(含代码)
- Solidigm正式推出PCIe 4.0 固态盘Solidigm™ P41 Plus
- C++的tie()函数
- 朗强HDMI视频拼接分割器
- (附源码)spring boot动力电池数据管理系统 毕业设计 301559
- 学校校园教务老师选课排课系统 毕业设计毕设源码毕业论文参考(2)班主任辅导员功能
- 怎么在CAD图库中添加新图块?