SNAT和DNAT的实现

在这里插入图片描述

一、准备环境

1.准备两台linux虚拟机,一台作为网关服务器另一台作为客户端机器。 网关服务器需要配置两张网卡(网络适配器),其中一个设置为桥接模式,另一个设为仅主机模式

在这里插入图片描述

2.客户机只需一张网卡,设置为仅主机模式或者桥接模式都可以
在这里插入图片描述

3.给服务器添加的网络适配器设置IP地址
将服务器的ens33端口设置为192.168.50.254,作为客户机的网关

在这里插入图片描述
在这里插入图片描述
4.将服务器的ens36端口设置在与真实机器相同的网段
在这里插入图片描述
要记得添加网关和DNS
在这里插入图片描述
5.同样为客户机的ens33端口配置IP地址192.168.50.1
要与服务器的ens33端口在同一网段,并将其设置为网关地址

在这里插入图片描述
在这里插入图片描述
6.保险起见,把两台虚拟机的防火墙都先关闭一下
service firewalld stop

那么这样,初始的环境就配置好了

二、SNAT的实现

1.在网关服务器创建一个文件夹nat
进入nat文件夹后编辑一个脚本snat.sh

在这里插入图片描述
在这里插入图片描述
echo 1 >/proc/sys/net/ipv4/ip_forward: 这个命令将数字1写入/proc/sys/net/ipv4/ip_forward文件中,启用IP转发功能。IP转发允许Linux系统将接收到的数据包从一个网络接口转发到另一个网络接口。

iptables -F: 这个命令用于清除所有已存在的iptables规则,以确保从一个干净的状态开始配置新的规则。

iptables -t nat -F: 这个命令用于清除所有已存在的iptables NAT(网络地址转换)规则,以确保从一个干净的状态开始配置新的规则。

iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens36 -j SNAT --to-source 192.168.2.99: 这个命令添加一个POSTROUTING规则到iptables NAT表中。它指定了源地址转换(SNAT)规则,将源IP地址为192.168.50.0/24子网的数据包通过网络接口ens36进行转发,并将源IP地址转换为192.168.2.99。

这些命令的目的是配置Linux系统上的SNAT规则,以便在数据包从192.168.50.0/24子网发送到外部网络时,将源IP地址转换为192.168.2.99。这通常用于网络地址转换(NAT)和路由器配置中,以实现内部网络与外部网络之间的通信。

2.加粗样式执行该脚本,并且检查是否建立SNAT连接
在这里插入图片描述
3.检测客户机是否能够上网
在这里插入图片描述
成功ping通

三、DNAT的实现

1.在网关服务器的nat文件夹中编辑一个脚本dnat.sh
在这里插入图片描述

在这里插入图片描述

iptables: 这是用于配置iptables防火墙规则的命令。
-t nat: 指定了要操作的iptables表,这里是NAT表。
-A PREROUTING: 表示将规则添加到PREROUTING链中。PREROUTING链用于在数据包进入路由之前进行处理。
-d 192.168.255.99: 指定了目标IP地址为192.168.255.99的数据包。
-i ens36: 指定了数据包进入的网络接口为ens36。
-p tcp: 指定了数据包使用的协议为TCP。
–dport 8000: 指定了数据包的目标端口为8000。
-j DNAT: 表示对匹配的数据包执行目标地址转换(DNAT)操作。
–to-destination 192.168.50.1: *这个选项指定了目标地址转换的目标IP地址为192.168.50.1。

这个命令的作用是将目标IP地址为192.168.255.99、进入网络接口为ens36、目标端口为8000的TCP数据包的目标地址转换为192.168.50.1。这通常用于将外部请求转发到内部服务器或应用程序。
2.执行该脚本,并检测是否成功建立DANT连接
在这里插入图片描述
成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值