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)
zss123456zss123456
上一篇 2018-03-01
下一篇 2018-03-01

相关推荐

  • N21沉舟14周作业

    系统的INPUT和OUTPUT默认策略为DROP; iptables -P INPUT DROP iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响…

    Linux干货 2016-11-14
  • 文件系统的挂载使用总结

    文件系统使用 除根文件系统以外的文件系统创建后要使用需要先挂载至挂载点后才可以被访问,挂载点即分区设备文件关联的某个目录文件,挂载命令mount和 卸载命令umount; 挂载点: mount_point,作为被挂载的文件系统的访问入口; 作为挂载点需要满足三个条件:  (1)这个目录事先存在  (2)使用未被或不会被其他进程使用到的目录…

    系统运维 2016-11-19
  • test

    test

    Linux干货 2016-08-08
  • linux网络管理 一

    什么是网络?         是指将具有独立功能的计算机和周边设备,通过通信线路连接起来,在网络软件的支持下,实现资源的共享和数据的整个系统。 网络的特征:         速度      …

    2017-03-16
  • 基于CentOS7实现LAMP(上)

    基于CentOS7实现LAMP(上)   情景模式: (1)php以模块方式运行  提供两个虚拟主机;                    &nbs…

    Linux干货 2016-08-22
  • Bash编程之流程控制

    Bash作为一种过程式编程语言,拥有一套流程控制体系,可完成选择执行,循环执行功能。下面分别介绍if/else,case,select,for,while/until等语法的使用。

    Linux干货 2016-08-21