iptables中DNAT和SNAT转发的配置方法
1.一对一流量完全DNAT
首先说一下网络环境,普通主机一台做防火墙用,网卡两块
eth0 192.168.0.1 内网
eth1 202.202.202.1 外网
内网中一台主机 192.168.0.101
现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上
命令如下:
#将防火墙改为转发模式
echo > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101
iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1
2.多对多流量完全DNAT
说是多对多,实际上这里的配置是指定了多个一对一
环境:
eth0 192.168.0.1 内网
eth1 202.202.202.1 、202.202.202.2 外网
内网中2台主机 192.168.0.101、192.168.0.102
现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上,同时把把外网访问202.202.202.2的所有流量映射到192.168.0.102上
这里顺便提一下如何为网卡配置多个IP
ifconfig eth1: 202.202.202.2 netmask 255.255.255.0 up
命令如下:
#将防火墙改为转发模式
echo > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101
iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1 iptables -t nat -A PREROUTING -d 202.202.202.2 -j DNAT --to-destination 192.168.0.102
iptables -t nat -A POSTROUTING -d 192.168.0.102 -j SNAT --to 192.168.0.1
3.一对多根据协议DNAT
这个最常用,一般是内网或DMZ区内有多个应用服务器,可以将不同的应用流量映射到不同的服务器上
环境:
eth0 192.168.0.1 内网
eth1 202.202.202.1 外网
内网中2台主机 192.168.0.101(Web服务器)、192.168.0.102(邮件服务器)
现在要把外网访问202.202.202.1的Web流量映射到192.168.0.101上,同时把把外网访问202.202.202.1的邮件访问流量映射到192.168.0.102上
命令如下:
#将防火墙改为转发模式
echo > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport -j DNAT --to-destination 192.168.0.101:
iptables -t nat -A POSTROUTING -d 192.168.0.101 -p tcp --dport -j SNAT --to 192.168.0.1 iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport -j DNAT --to-destination 192.168.0.102:
iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport -j SNAT --to 192.168.0.1 iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport -j DNAT --to-destination 192.168.0.102:
iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport -j SNAT --to 192.168.0.1
转自:http://blog.csdn.net/bill_lee_sh_cn/article/details/4401896
iptables中DNAT和SNAT转发的配置方法的更多相关文章
- iptables中DNAT、SNAT和MASQUERADE的理解
转:http://blog.csdn.net/yu_xiang/article/details/9212543 DNAT(Destination Network Address Translation ...
- (转) 在Eclipse中进行C/C++开发的配置方法(20140721最新版)
本文转载自:http://blog.csdn.net/baimafujinji/article/details/38026421 Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其 ...
- 转:在Eclipse中进行C/C++开发的配置方法(20140721最新版)
http://blog.csdn.net/baimafujinji/article/details/38026421 Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它 ...
- (转)在Eclipse中进行C/C++开发的配置方法(20140721最新版)
因准备考试原因需要在windows下配置C++标准运行环境,找到此文,Mark之. 先列举下自己遇到的情况: 1 JRE安装不上,点了exe文件后没有反应: 安装JDK!!! 2 Eclipse找 ...
- ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法
ASP.NET web.config中数据库连接字符串connectionStrings节的配置方法 第一种情况,本地开发时,使用本地数据库,如下面的代码 <connectionStrings& ...
- CentOS 6.6 中jdk1.6的安装和配置方法
Linux中JDK1.6的安装和配置方法 一.安装 创建安装目录,在/usr/java下建立安装路径,并将文件考到该路径下: # mkdir /usr/java 1.jdk-6u11-linux-i5 ...
- php中ckeditor(Fckeditor)的配置方法
ckeditor 编辑器php正确配置方法 1. 下载安装 CKEditor: http://ckeditor.com/ 解压下载到的CKEditor放到网站的路径中即可 2. 下载安装 CKFind ...
- iptables中DNAT的配置方法
1.一对一流量完全DNAT 首先说一下网络环境,普通主机一台做防火墙用,网卡两块 eth0 192.168.0.1 内网 eth1 202.202.202.1 外网 内网中一台主机 192.168. ...
- IDC 内网机器 通 过 iptables SNAT上网的配置方法
有三台机器, A .B .C,其中A机器有外网和内网IP,B和C只有内网,我们配置B和C二台机器通过A机器来上外网. 假设A机器 外网IP为: 60.12.13.14 内网IP为: 192.168. ...
随机推荐
- 设计模式:门面模式(Facade)
前面介绍的适配器模式讲的是如何将一个接口转换成客户所需要的另一个接口,它的目的在于 解决接口的不兼容性问题.现在这里有这样一个模式,它的目的在于如何简化接口,它可以将多个类的复杂的一切隐藏在背后, ...
- 一步一步带你入门MySQL中的索引和锁 (转)
出处: 一步一步带你入门MySQL中的索引和锁 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等.本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结 ...
- C# 面向对象4 构造函数
构造函数 1.构造函数用来创建对象,并且可以在构造函数中对对象进行初始化. (给对象的每个属性依次的赋值) 2.构造函数是用来创建对象的特殊方法: 1.方法名和类名一样. 2.没有返回值,连void都 ...
- EJS学习(三)之语法规则中
⚠️实例均结合node,也就是AMD规范版本 ejs中使用render()表示渲染文本 接收三个参数:模版字符串.data.options,返回一个字符串 const ejs = require('e ...
- calc,support,media各自的含义及用法
@support:用于检测浏览器是否支持CSS某个属性,即条件判断,如果支持某个属性,可以写一套样式,如果不支持某属性,提供另一套样式作为替补. calc():用于计算动态函数值,支持“+”,“-”, ...
- Java 从无类型参数Map到有类型参数Map传值的一个问题
import java.util.HashMap; import java.util.Map; public class MapTest { public static void main(Strin ...
- Tomcat配置JNDI
JNDI是什么?使用JNDI有什么好处? JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一. 我个人对j ...
- redis性能指标
1.当内存使用达到设置的最大阀值时,需要选择一种key的回收策略,可在Redis.conf配置文件中修改“maxmemory-policy”属性值. 若是Redis数据集中的key都设置了过期时间,那 ...
- LINUX任意精度计算器BC用法
[用途说明] Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision cal ...
- Laying out a webpage is easy with flex
Flex写起来省劲很多,只用加上flex-wrap:wrap在container上.Html5 playground