Linux系统之iptables应用SNAT与DNAT

Linux系统之iptables应用SNAT与DNAT

  • SNAT
    • 1、SNAT的原理介绍
      • 1.1SNAT的应用环境
      • 1.2SNAT的原理
    • 1.3SNAT转化的前提条件
  • 2、开启SNAT
    • 2.1临时打开
    • 2.2永久打开
  • 3、SNAT的转换
    • 3.1固定的公网IP地址
    • 3.2非固定的公网IP地址(共享动态IP地址)
  • DNAT
  • 1、DNAT的原理介绍
    • 1.1应用环境
    • 1.2DNAT原理
    • 1.3DNAT转换前提条件
    • 2、DNAT的转换
      • 2.1发布内网的Web服务
  • SNAT和DNAT实验

SNAT

1、SNAT的原理介绍

1.1SNAT的应用环境

SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由)

1.2SNAT的原理

SNAT原理:源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映谢

数据包从内网发送到公网时,SNAT会把数据包的源IP由私网IP转换成公网IP

当响应的数据包从公网发送到内网时,会把数据包的目的IP由公网IP转换为私网IP

1.3SNAT转化的前提条件

  • 1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址
  • 2.Linux网关开启IP路由转发
    注意:linxu系统本身是没有转发功能,只有路由发送数据
    在这里插入图片描述

2、开启SNAT

2.1临时打开

echo 1 >/proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip forward=1

2.2永久打开

vim /etc/ sysctl. conf
net. ipv4.ip_ forward = 1				#将此行写入配置文件sysctl -P			                	#读取修改后的配置

3、SNAT的转换

3.1固定的公网IP地址

#配置SNAT策略,实现snat功能,将所有192.168.100.0这个网段的ip的源ip改为10.0.0.1
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to 10.0.0.1可换成单独IP   出站外网网卡            外网IP
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10内网IP           出站外网网卡                     外网IP或地址池

3.2非固定的公网IP地址(共享动态IP地址)

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j MASQUERADEiptables -t nat -A POSTROUTING -s 12.0.0.0/24 -d 192.168.100.0/24 -j MASQUERADE
一个IP地址做SNAT转换,一般可以让内网 100到200 台主机实现上网

DNAT

1、DNAT的原理介绍

1.1应用环境

在Internet中发布位于局域网内的服务器

1.2DNAT原理

  • 目标地址转换
  • 修改数据包的目标地址

1.3DNAT转换前提条件

  • 局域网的服务器能够访问Internet
  • 网关的外网地址有正确的DNS解析记录
    Linux网关开启IP路由转发
vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1 
sysct1 -p

2、DNAT的转换

2.1发布内网的Web服务

#把从ens33进来的要访问web服务的数据包目的地址转换为 192.168.80.11
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 80 -j DNAT --to 192.168.80.11
或
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 80-j DNAT --to-destination 192.168.80.11入站|外网网卡 | 外网ip											             内网服务器ipiptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80-j DNAT --to 192.168.80.11-192.168.80.20

SNAT和DNAT实验

PC2:
先添加一块网卡,并将该网卡设置为仅主机模式
在这里插入图片描述

systemctl stop firewalld  //关闭防火墙
setenforce 0  //关闭shellinux

在这里插入图片描述

ip a //查看网卡信息

在这里插入图片描述

cd /etc/sysconfig/network-scripts/
//进入到网卡配置信息目录
cp ifcfg-ens33  ifcfg-ens36
//拷贝ens33的配置文件,并命名为ens36

在这里插入图片描述

vim ifcfg-ens36 //进入到ens36的配置文件中进行修改

在这里插入图片描述

systemctl restart network  //重新启动网卡
ping 12.0.0.1  //查看一下网卡是否设置成功永久打开路由转发功能:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1    #将此行写入配置文件
sysctl -p  #读取修改后的配置

在这里插入图片描述

iptables -F //清除链内规则
iptables -t nat -A POSTROUTING -s 192.168.91.0/24 -o ens36 -j SNAT --to 12.0.0.1 
//将源地址为192.168.190.0段的私网地址全部  转化为网关地址

在这里插入图片描述

PC3

vim /etc/sysconfig/network-scripts/ifcfg-ens33
//进入网卡配置信息文件

在这里插入图片描述
在这里插入图片描述
PC1
在这里插入图片描述

ifconfig ens33 12.0.0.10/24 //设置网卡的ip地址
ping 12.0.0.1   //ping一下pc2查看是否连通

在这里插入图片描述

yum -y install httpd  //yum安装http

在这里插入图片描述

systemctl start httpd   //启动http
systemctl status httpd  //查看http的状态

在这里插入图片描述

cd /var/www/html  //切换到/var/www/html目录
vim index.html  //创建index.html文件,并向其中添加内容“从山峦到海洋”
systemctl stop firewalld  //关闭防火墙
setenforce 0  //关闭shellinux

在这里插入图片描述
PC2

curl 192.168.190.101   //请求web服务器,连接pc3

在这里插入图片描述

iptables -t nat -A PREROUTING -i ens36 -d 12.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.190.101///将源地址为12.0.0.0段的公网地址全部转化为网关地址

在这里插入图片描述
pc1

curl 12.0.0.1 //连接PC2的ip地址12.0.0.1

可以看到PC2创建的内容
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/81564.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RISC-V(1)——RISC-V是什么,有什么用

目录 1. RISC-V是什么 2. RISC-V指令集 3. RISC-V特权架构 4. RiscV的寄存器描述 5. 指令 5.1 算数运算—add/sub/addi/mul/div/rem 5.2 逻辑运算—and/andi/or/ori/xor/xori 5.3 位移运算—sll/slli/srl/srli/sra/srai 5.4 数据传输—lb/lh/lw/lbu/lhu/lwu/sb/sh/sw …

Hadoop入门机安装hadoop

0目录 1.Hadoop入门 2.linux安装hadoop 1.Hadoop入门 定义 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。 优势 高可靠性:Hadoop底层维护多…

Docker搭建elasticsearch+kibana测试

最近需要做大数据画像,所以先简单搭建一个eskibana学习使用,记录一下搭建过程和遇到的问题以及解决办法 1.拉取es和kibana镜像 在拉取镜像之前先搜索一下 elasticsearch发现是存在elasticsearch镜像的,我一般习惯性拉取最新镜像&#xff0c…

验证码识别DLL ,滑块识别SDK,OCR图片转文字,机器视觉找物品

验证码识别DLL ,滑块识别SDK 你们用过哪些OCR提取文字,识图DLL,比如Opencv,Labview机器视觉找物品之类?

2023国赛数学建模思路 - 案例:随机森林

文章目录 1 什么是随机森林?2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林&#xff…

STM32CubeMX配置STM32G0 Standby模式停止IWDG(HAL库开发)

1.打开STM32CubeMX选择好对应的芯片,打开IWDG 2.打开串口1进行调试 3.配置好时钟 4.写好项目名称,选好开发环境,最后获取代码。 5.打开工程,点击魔术棒,勾选Use Micro LIB 6.修改main.c #include "main.h"…

如何批量加密PDF文件并设置不同密码 - 批量PDF加密工具使用教程

如果你正在寻找一种方法来批量加密和保护你的PDF文件,批量PDF加密工具是一个不错的选择。 它是一个体积小巧但功能强大的Windows工具软件,能够批量给多个PDF文件加密和限制,包括设置打印限制、禁止文字复制,并增加独立的打开密码。…

jenkins Linux如何修改jenkins 默认的工作空间workspace

由于jenkins默认存放数据的目录是/var/lib/jenkins,一般这个var目录的磁盘空间很小的,就几十G,所以需要修改jenkins的默认工作空间workspace 环境 jenkins使用yum安装的 centos 7 正题 1 查看jenkins安装路径 [rootlocalhost jenkins_old_data]# rpm…

4.5 TCP优化

TCP 三次握手的性能提升 三次握手的过程在一个 HTTP 请求的平均时间占比 10% 以上,所以要正确使用三次握手的中参数,需要先用netstat命令查看是哪个握手阶段出了问题,主动发起连接的客户端优化相对简单些,而服务端需要监听端口&a…

opencv-答题卡识别判卷

#导入工具包 import numpy as np import argparse import imutils import cv2# 设置参数 ap argparse.ArgumentParser() ap.add_argument("-i", "--image", requiredTrue,help"path to the input image") args vars(ap.parse_args())# 正确答案…

Ceph入门到精通-大流量10GB/s LVS+OSPF 高性能架构

LVS 和 LVSkeepalived 这两种架构在平时听得多了,最近才接触到另外一个架构LVSOSPF。这个架构实际上是LVSKeepalived 的升级版本,我们所知道LVSKeepalived 架构是这样子的: 随着业务的扩展,我们可以对web服务器做水平扩展&#xf…

LAMP架构介绍配置命令讲解

LAMP架构介绍配置命令讲解 一、LAMP架构介绍1.1概述1.2LAMP各组件的主要作用1.3各组件的安装顺序 二、编译安装Apache httpd服务---命令讲解1、关闭防火墙,将安装Apache所需的软件包传到/opt/目录下2、安装环境依赖包3、配置软件模块4、编译安装5、优化配置文件路径…