SNAT,DNAT,端口转发

利用iptables配置NAT

实验准备

实验拓扑图:

1

一、SNAT

三台服务器:lan、router、internet

 配置内网lan

1.配置内网IP地址

禁用外网地址ifconfig eth1 down

2.查看路由信息

2

3.增加一条路由指向路由器  3  、配置       配置路由器

1.检查路由转发功能

sysctl -a |grep ip_for

若:net.ipv4.ip_forward=1,就说明具有路由转发功能

若:net.ipv4.ip_forward=0,就说明不具有转发功能,需要修改文件:

echo net.ipv4.ip_forward=1 >>/etc/sysctl.conf

sysctl -p  生效该文件

4

使用192.168.42.131 ping 172.18.42.8 不能Ping 通

在172.18.42.8主机上抓包  tcpdump -i eth1 host 192.168.42.131,只有请求包,没有回复包5

2.配置NAT

iptables -t nat -A POSTROUTING -s 192.168.42.0/24 ! -d 192.168.42.0/24 -j SNAT –to-source                      172.18.42.7

6

7

使用192.168.42.131 ping 172.18.42.8

8

抓包

9

    检测

1.在外网internet上安装个Httpd服务

yum install httpd

echo www.baidu.com >/var/www/html/index.html

10

2.在内网lan中访问

11

二、DNAT

1.在内网上安装个Httpd 便于观察实验结果

12

2.配置路由器

iptables -t nat -A PREROUTING -d 172.18.42.7 -p tcp –dport 80 -j DNAT –to-destination                               192.168.42.13113

3.在外网internet上查看

14

三、端口转发

端口转发是发生在一台服务器上的,拿内网lan为类

开始用192.168.42.133访问192.168.42.131上的httpd服务

192.168.42.133是用curl 192.168.42.131

15

1.修改192.168.42.131上的httpd的端口:

16

1718

重启服务

2.在用192.168.42.133访问192.168.42.131上的httpd服务

19

20

3.在192.168.42.131上配置端口转发

iptables -t nat -A PREROUTING -d 192.168.42.131 -p tcp –dport 80 -j REDIRECT –to-port 10086

21

再次访问

22

 

 

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91820

(0)
上一篇 2018-03-01 14:39
下一篇 2018-03-01 17:56

相关推荐

  • 编译安装dropbear

    ssh协议的另一个实现:dropbear 编译安装dropbear [root@centos6 ~]# tar xf dropbear-2013.58.tar.bz2  [root@centos6 ~]# cd dropbear-2013.58 [root@centos6&nbs…

    Linux干货 2016-09-28
  • 网络班27期第五周作业

    N27_网络班 第五周作业 1、 显示当前系统上root、fedora或user1用户的默认shell [root@localhost ~]# grep -E ‘^(root|fedora|user1)’ /etc/passwd | cut -d: -f1,7 2、 找出/etc/rc.d/init.d/function文件中某单词后面跟一组小括号的行,形如…

    Linux干货 2017-08-28
  • 知识提炼之0714

    history          history[-c] [-d offset] [n]          history-anrw [filename]    &nbs…

    Linux干货 2017-07-14
  • linux bash环境变量简单总结

    一.环境变量简介Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都 是相同的,这个默认环境实际上就是一组环境变量的定义。 环境变量是全局的,设置好的环境变量可以被所有当前用户所运行的程序所使用。 用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。 …

    Linux干货 2015-09-14
  • Mysql 备份

    Mysql 备份 ============================================================================= =============================================================================    &n…

    2016-11-22
  • 第5周作业

    1、显示当前系统上root、fedora或user1用户的默认shell     ~]# egrep "^(root|fedora|user1)" /etc/passwd 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,如:hello();  …

    Linux干货 2017-01-07