1.一对一流量完全DNAT

首先说一下网络环境,普通主机一台做防火墙用,网卡两块

eth0 192.168.0.1  内网

eth1 202.202.202.1 外网

内网中一台主机 192.168.0.101

现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上

命令如下:

[xhtml] view plaincopy

#将防火墙改为转发模式  

echo 1 > /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

[c-sharp] view plaincopy

ifconfig eth1:1 202.202.202.2 netmask 255.255.255.0 up

命令如下:

[c-sharp] view plaincopy

#将防火墙改为转发模式  

echo 1 > /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上

命令如下:

[c-sharp] view plaincopy

#将防火墙改为转发模式  

echo 1 > /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 80 -j DNAT --to-destination 192.168.0.101:80  

iptables -t nat -A POSTROUTING -d 192.168.0.101 -p tcp --dport 80 -j SNAT --to 192.168.0.1  

 

iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 25 -j DNAT --to-destination 192.168.0.102:25  

iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport 25 -j SNAT --to 192.168.0.1  

 

iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 110 -j DNAT --to-destination 192.168.0.102:110  

iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport 110 -j SNAT --to 192.168.0.1

iptables中DNAT的配置方法的更多相关文章

  1. ubuntu 中DNAT SNAT配置实验.

    1.      目的 图1 如图1所示,有A,B两台计算机,其中A配置成普通PC,B是网关.实现由A向一个不存在的IP 发起tcp连接,并能向这个不存在的ip发送数据. 同时响应这个tcp连接的是B中 ...

  2. iptables中DNAT、SNAT和MASQUERADE的理解

    转:http://blog.csdn.net/yu_xiang/article/details/9212543 DNAT(Destination Network Address Translation ...

  3. iptables中DNAT和SNAT转发的配置方法

    1.一对一流量完全DNAT 首先说一下网络环境,普通主机一台做防火墙用,网卡两块 eth0 192.168.0.1  内网 eth1 202.202.202.1 外网 内网中一台主机 192.168. ...

  4. VS2015ASP.NET MVC5项目中Spring.NET配置方法(超详细)

    首先,在ASP.NET MVC5项目右键,如下图所示,选择“管理Nuget程序包...” 然后,在弹出的页面的搜索框中输入“spring.web”,在返回结果中选择Spring.Web和Spring. ...

  5. Android Studio中JNI -- 1 -- 配置方法

    1.配置NDK 1.1 下载NDK Android Studio 1.2 配 android-ndk-r10e,不同版本的Studio需要配置不同的ndk,下载完成后,随便解压放至某个文件目录下 1. ...

  6. IDC 内网机器 通 过 iptables SNAT上网的配置方法

    有三台机器, A .B .C,其中A机器有外网和内网IP,B和C只有内网,我们配置B和C二台机器通过A机器来上外网. 假设A机器 外网IP为: 60.12.13.14  内网IP为: 192.168. ...

  7. GIS中mybatis_CMEU的配置方法

    基本常用功能预览: 生成实体类(可以自定义:get/set,有参无参构造方法,自定义类型与属性,序列化等); 生成dao层接口(查询全部信息,通过ID查询信息,插入全部属性,插入不为空的属性,通过ID ...

  8. 【Eclipse】eclipse中格式化代码配置方法

    1.找到"Source",点击,在弹出的下拉框内,找到"Format",然后点击,或者快捷键ctrl+shift+F, 如果对单单一行的行首进行自动对齐,将鼠标 ...

  9. beaglebone-black 在Angstrom系统中的网络配置方法

    Beaglebone Linux 101: Assigning a Static IP Address with Connman Posted on February 6, 2012 by dwatt ...

随机推荐

  1. 透过源码看看Redis中如何计算QPS

    通常我们采集Redis的性能数据时,或者想要知道Redis当前的性能如何时,需要知道这个实例的QPS数据,那么这个QPS数据是如何计算的呢?我们都有哪些办法或者这个QPS ? QPS顾名思义就是每秒执 ...

  2. Why you should QC your reads AND your assembly?

    鲤鱼基因组:http://www.ntv.cn/a/20140923/52953.shtml   关于鲤鱼基因组的测定,数据质量控制遭到质疑. Why you should QC your reads ...

  3. [Unity] A* pathfinding project integrated with influence map

    简介 最近一阶段重温了一些关于游戏人工智能方面的书籍. 加强了对influence map的认知.想要亲自动手实现一下. 正如文章标题所示,这篇文章讲的是:如何将influence map的机制融入到 ...

  4. php下拉菜单选中值在选择之后保留并且显示

    <select id="select_platform" name="source" style="height:35px;"> ...

  5. Linux下如何启动svn服务器

    service svnserve start 启动服务 service svnserve stop 停止服务 service svnserve restart 重启服务 rpm -e --nodeps ...

  6. jQuery 评分插件(转)

    评分效果的小插件jQuery Raty.它提供的API相当丰富真的是让人爱不释手.详细文档及下载插件请移步这里. 基本使用 下面我们来实际操作,运用一下这个有爱的小插件. 需要做的事情非常简单,在页面 ...

  7. php数组根据某键值,把相同键值的合并最终生成一个新的二维数组

    <?php $a=array( '0'=>array( 'id'=>'1', 'names'=>'jack', '0'=>'sendone' ), '1'=>arr ...

  8. Example007关闭窗口时关闭父窗口

    <!--实例007关闭窗口时刷新父窗口--> <!DOCTYPE html> <html lang="en"> <head> < ...

  9. Java多线程(一) —— 线程的状态详解

    一.多线程概述  1. 进程 是一个正在执行的程序.是程序在计算机上的一次运行活动. 每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 系统以进程为基本单位进行系统资源的调度 ...

  10. CentOS下源码安装vsftpd-3.0.0,并设置指定用户访问指定目录(附带完整配置文件)

    1.卸载系统已经存在的ftp服务器 因为是源码安装,所以不能通过rpm -qa的方式查看是否已经安装ftp服务器,可以通过find / | grep vsftp*方式查看系统中存在哪些与vsftpd相 ...