Linux之路SNAT策略及应用

news2024/11/14 15:01:03

目录

 二、SNAT实验的部署设计

三、具体实验步骤

第一步:做好实验前的虚拟机设置

1)网关服务器的设置

①添加网卡,修改vmnet

②修改ens33为网关服务器的内网网卡

③修改新加网卡ens36(这里添加的网卡是什么就用什么)

2)客户机设置模拟

3)web服务器设置

①配置网卡

②下载http服务并且开启

第二步:网关服务器设置同意路由转发

第三步:关闭防火墙和syslinux,客户机初步访问web服务器httpd服务

运用Linux的火狐浏览器,直接通过IP进行访问: 

第四步 :SNAT源地址转换

第五步:再次访问,且查看web服务器日志


SNAT又称源地址转换。源地址转换是内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址(可指定具体的服务以及相应的端口或端口范围),这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网ip地址访问外部网络

真实环境运用中私网可以通过路由转发,将数据包传送给公网IP地址的服务器,而公网地址无法将相应的数据包回还给私网地址的用户。此时二者之间需要一个媒介,就是一个建立在私网和公网之间的网关服务器,对其之间的数据包进行相应的处理。来完成私网IP与公网IP之间的建立联系

SNAT源地址转换过程:

  • 数据包从内网发送到公网时,SNAT会把数据包的源地址由私网IP转换成公网IP
  • 当相应的数据包从公网发送到内网时,会把数据包的目的地址由公网IP转换为私网IP
  • 当内网有多台主机访问外网时,SNAT在转换时会自动分配端口,不同内网主机会通过端口号进行区分

 二、SNAT实验的部署设计

运用SNAT策略将局域网中的客户机IP封装为网关服务器的外网IP,访问web服务器的http服务

三、具体实验步骤

第一步:做好实验前的虚拟机设置

在这里我准备了三台虚拟机依次将它们当作客户机,web服务器和网关服务器来使用

1)网关服务器的设置

①添加网卡,修改vmnet

②修改ens33为网关服务器的内网网卡

③修改新加网卡ens36(这里添加的网卡是什么就用什么)

cp  ifcfg-ens33 ifcfg-ens36

 以上操作结束后,重启网卡

2)客户机设置模拟

3)web服务器设置

①配置网卡

②下载http服务并且开启

yum install -y httpd 
 
systemctl restart httpd

第二步:网关服务器设置同意路由转发

#永久启用
vim /etc/sysctl.conf
 net.ipv4.ip_forward=1 
 
sysctl -p 
 
#临时开启
 
 echo 1 > /proc/sys/net/ipv4/ip_forward
 或
 sysctl -w net.ipv4.ip_forward=1

第三步:关闭防火墙和syslinux,客户机初步访问web服务器httpd服务

运用Linux的火狐浏览器,直接通过IP进行访问: 

查看web服务器的http访问日志: 

#追踪更新访问者访问httpd服务的日志
tail  -f  /var/log/httpd/access_log   

这是由虚拟机模拟的内网外网环境,与真实环境有一些出入,如果在真实环境中,私网IP是不会在公网服务器上留下访问痕迹

同时:并没有达到实验最终目的,还需要进一步的SNAT源地址转换

第四步 :SNAT源地址转换

[root@localhost ~]#  iptables -t nat -A POSTROUTING -s 192.168.73.0/24 -o ens36 -j SNAT --to 12.0.0.254  

第五步:再次访问,且查看web服务器日志

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FATFS移植 - 基于N32G4FR在SD卡(sd nand)上移植FATFS文件系统

FATFS移植 - 基于N32G4FR在SD卡(sd nand)上移植FATFS文件系统 文章目录 FATFS移植 - 基于N32G4FR在SD卡(sd nand)上移植FATFS文件系统1. 前言2. FATFS文件系统介绍2.1 文件系统的概念和作用2.2 FATFS的特点和优势 3. 相关源码获取3.1 FatFs文件源码下载3.2 国民技术N32软件开发…

我们详细讲讲UI自动化测试最佳设计模式POM

概念 什么是POM? POM是PageObjectModule(页面对象模式)的缩写,其目的是为了Web UI测试创建对象库。 在这种模式下,应用涉及的每一个页面应该定义为一个单独的类,类中应该包含此页面上的页面元素对象和处…

【Java校招面试】实战面经(一)

目录 前言一、单链表找三等分点(链表可能有环)二、讲几个熟悉的设计模式三、Spring IoC、AOP是什么,是如何实现的,Spring MVC是什么?四、怎么实现线程安全,各个实现方法有什么区别,synchronized…

Linux防火墙之iptables(下)

目录 一、通用匹配 1)协议匹配 2)地址匹配 3)接口匹配 二、隐含匹配 1)端口匹配 2)TCP标志位的匹配 3)ICMP的类型匹配 ①请求规则设置 ②回显匹配 ②显示目的不可达匹配 三、显示匹配 1 &…

教你精通Java语法之第十三章、反射

目录 一、定义 二、用途 三、反射基本信息 四、反射相关的类 4.1Class类 4.1.1Class类中的相关方法(方法的使用方法在后边的示例当中) ​编辑 4.2反射示例 4.2.1获得Class对象的三种方式 4.2.2反射的使用 五、反射优点和缺点 六、重点总结 一、定义 Java的反射&am…

计算机图形学 | 实验十:几何纹理(法线贴图)

计算机图形学 | 实验十:几何纹理(法线贴图) 计算机图形学 | 实验十:几何纹理(法线贴图)什么是法线贴图为什么需要切线空间加载法线贴图引入切线空间结果 华中科技大学《计算机图形学》课程 MOOC地址&#…

PCB基础~电源和地平面,去耦电容

电源和地平面 • 应该尽可能的使用电源和地平面, Why? – 在设备和电源之间提供一个低阻抗的路径 – 提供屏蔽 – 提供散热 – 降低分布电感 • 一个完整的无破损的平面是最优选择 – 破碎的地平面会在走线的上下层之间 引入寄生电感 • Remember! • 低频时&…

【服务器】利用树莓派搭建 web 服务器-无需公网IP

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 概述 使用 Raspberry Pi Imager 安装 Raspberry Pi OS 设置 Apache Web 服务器 测试 web 站点 安装静态样例站点 将web站点发布到公网 安装 Cpolar内网穿透 cpolar进行tok…

SQL-DDL语句DQL语句

SQL学习笔记 DDL语句--操作数据表 /* 快捷键: insert键 在插入 和 替换模式之间切换 ctrl 字母z 撤销上一步操作 tab 往后缩进(默认4个空格) shift tab 往前缩进(默认4个空格) …

SpringBoot配置文件和日志

目录 SpringBoot配置文件 SpringBoot配置文件的作用 项目中的重要数据写在配置文件当中 降低代码耦合 SpringBoot配置文件的格式 properties配置文件 读取配置文件中的内容(Value注解使用${}格式读取) properties优缺点 yml配置文件 yml特…

ChatGPT官方APP正式发布!附安装使用教程

目录 前言 APP功能演示 1.与机器人聊天,询问问题 2.语音输入,人机交互 3.聊天历史,新建聊天分组 安装教程 1.下载应用 2.登录账号 3.愉快的玩耍吧 总结 写到最后 大家好,我是大侠,AI领域的专业博主 前言 …

Docker安装常用软件-Kafka集群

零、为了方便开发调试,使用kafka部署一套kafka环境,进行功能调试,方便快捷 一、部署zookeeper 1、下载镜像 docker pull wurstmeister/zookeeper 2、运行zookeeper镜像 docker run -d --restartalways --log-driver json-file --log-op…

(转载)从0开始学matlab(第10天)—自顶向下的编程思想

在前面的内容中,我们开发了几个完全运转的 MATLAB 程序。但是这些程序都十分简单,包括一系列的 MATLAB 语句,这些语句按照固定的顺序一个接一个的执行。像这样的程序我们称之顺序结构程序。它首先读取输入,然后运算得到所需结果&a…

QT学习记录(三)绘图

按照下面两个教程学习 QT学习教程(全面)_Strive--顾的博客-CSDN博客_qt学习 天山老妖S的博客_QT开发(3)_51CTO博客 1、绘图 VC项目右键增加QT GUI Class,在QT Designer中编辑DlgDraw.ui 在DlgDraw中重载函数 void DlgDraw::paintEvent(Q…

Flutter控件之图片Image封装

Flutter控件之基类Widget封装 Flutter控件之文本Text封装 为什么要进行繁琐的封装?直接用也挺好啊,这个回答一点毛病没有,大部分视图都可以原生绘制,可在Flutter中偏偏原生的控件,少了很多需要又常用的属性&#xff…

最小生成树—Kruskal算法和Prim算法

1.最小生成树 连通图:在无向图中,若从顶点v1到顶点v2有路径,则称顶点v1与顶点v2是连通的。如果图中任 意一对顶点都是连通的,则称此图为连通图。 生成树:一个连通图的最小连通子图称作该图的生成树。有n个顶点的连通…

Java基础-面向对象总结(3)

本篇文章主要讲解Java面向对象的知识点 面向对象的三大特性类的扩展(抽象类,接口,内部类,枚举) 目录 面向对象和面向过程的区别? 面向对象的五大基本原则 面向对象三大特性 继承 怎么理解继承 ? 继承和聚合的区别? 封装 多态 什么是多态 什么是运行时多…

面试阿里、字节全都一面挂,被面试官说我的水平还不如应届生

测试员可以先在大厂镀金,以后去中小厂毫无压力,基本不会被卡,事实果真如此吗?但是在我身上却是给了我很大一巴掌... 所谓大厂镀金只是不卡简历而已,如果面试答得稀烂,人家根本不会要你。况且要不是大厂出来…

MySQL数据库基础4-内置函数

文章目录 日期函数字符串函数数学函数其他函数 日期函数 函数名称描述current date()当前日期current time()当前时间current timestamp()当前时间戳date(datetime)返回datetime参数的日期部分date add(date, interval d_value type)在date中添加日期或时间,interv…

GitHub Actions Error “Waiting for a runner to pick up this job”

GitHub Actions Error “Waiting for a runner to pick up this job” 什么是GitHub Actions GitHub Actions 是一个 CI/CD(持续集成和持续部署)平台,可以让您自动化工作流程并与 GitHub 存储库中的代码集成。使用 GitHub Actions&#xff…