• 当前位置: 主页 > Linux安装教程 > 环境部署 >

    Linux下NAT基本操作介绍

    时间:2017-12-25 11:05来源:未知 作者:Linux先生 举报 点击:
    首先建立开机自动启动防火墙的脚本文件。在/etc/rc.d/目录下用touch命令建立firewall_NAT文件,执行chmod u+x firewall_NAT以更改文件属性,指定拥有者才有执行

      下面通过简单例子给出Linux下NAT的启用和简单的地址转换操作。
      
      (1)启动NAT服务
      
      启动NAT服务实际上就是启动iptables服务。
      
      首先建立开机自动启动防火墙的脚本文件。在/etc/rc.d/目录下用touch命令建立firewall_NAT文件,执行chmod u+x firewall_NAT以更改文件属性,指定拥有者才有执行的权限。编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall_NAT以确保开机时能自动执行该脚本。具体命令如下:
      

      Linux下NAT基本操作介绍

      
      其次,在设置NAT之前,一般要先清除所有以前设置的规则,进行初始化,清除所有链中的规则。
      
      在shell提示符#下依次键入下面的命令进行初始化:
      
      [root@ localhost~]#iptables-t nat-F
      
      [root@ localhost~]#iptables-t nat-X
      
      将nat表中的链中规则清除和自定义的链删除。此外在redhat或fedora版本的Linux中,可以使用更简单的办法完成上面的初始化工作:
      
      [root@ localhost~]#service iptables stop
      
      完成以上两个步骤,下面就可以启用iptables服务。
      
      [root@ localhost~]#service iptables start
      
      或者是:
      
      [root@ localhost~]#service iptables restart
      
      如前所述,在使用iptables的NAT功能时,必须在每一条规则中使用“-t nat”指明当前使用nat表。
      
      (2)设置源地址转换
      
      称为Source NAT,即修改数据包的源地址,在POSTROUTING链中进行定义。并使用-o指定出去的网络接口。通过指定“-j SNAT”来完成源地址转换,使用”--to-source”选项指定一个或一段IP地址,以及一个或一段TCP或UDP端口号。
      
      修改数据包源地址为222.17.10.253:
      
      iptables-t nat-A POSTROUTING-o-eth1-j SNAT-to 222.17.10.253
      
      修改数据包源地址为222.17.10.248至222.17.10.253:
      
      iptables-t nat-A POSTROUTING-o-eth1-j SNAT-to 222.17.10.248-222.17.10.253
      
      修改数据包源地址为222.17.10.243,协议类型TCP,端口号为80:
      
      iptables-t nat-A POSTROUTING-p tcp-o-eth1-j SNAT-to 222.17.10.253:80
      
      修改数据包源地址为222.17.10.243,协议类型TCP,端口号为1025-4095:
      
      iptables-t nat-A POSTROUTING-p tcp-o-eth1-j SNAT-to 222.17.10.253: 1025-4095
      
      修改数据包源地址为222.17.10.243,协议类型UDP,端口号为1025-4095:
      
      iptables-t nat-A POSTROUTING-p udp-o-eth1-j SNAT-to 222.17.10.253: 1025-4095
     

    Linux下NAT基本操作介绍
     

      
      (3)设置目的地址转换
      
      称为Destination NAT,即修改数据包的目的地址,在PREROUTING链中进行定义。并使用-i指定进入的网络接口。通过指定“-j DNAT”来完成目的地址转换,使用”--to-destination”选项指定一个或一段IP地址,以及一个或一段TCP或UDP端口号。
      
      修改数据包目的地址为210.17.10.253:
      
      iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.253
      
      修改数据包目的地址为210.17.10.248至210.17.10.253:
      
      iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.248-210.17.10.253
      
      修改数据包目的地址为210.17.10.243,协议类型TCP,端口号为80:
      
      iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.253:80
      
      修改数据包目的地址为210.17.10.243,协议类型TCP,端口号为1025-4095:
      
      iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.253:1025-4095
      
      修改数据包目的地址为210.17.10.243,协议类型UDP,端口号为1025-4095: iptables-t nat-A PREROUTING-i-eth1-j DNAT-to 210.17.10.253:1025-4095这里eth1接口为与外网连接的接口。其他还有IP伪装、重定向等操作可参考iptables的使用手册。

    ------分隔线----------------------------
    推荐内容