snat、dnat和firewalld
目录
概述
SNAT源地址转换
DANT目的地址转换
抓包
firewalld
端口管理
概述
snat :源地址转换
内网——外网 内网ip转换成可以访问外网的ip
也就是内网的多个主机可以只有一个有效的公网ip地址访问外部网络
DNAT:目的地址转发
外部用户,可以通过一个公网地址访问服务内部的私网服务
也就是私网的IP和公网IP做一个映射
SNAT源地址转换

步骤:
1.修改路由器ens33的IP地址,改成内网网关


2.修改路由器ens36的IP地址,改成外网网关


3.修改外网的IP地址和网关

4.修改内网的网关

5.配置路由器的内核参数文件


6.设置nat表的规则

-t nat 指定表为nat表
-A POSTROUING 离开本机 -A添加
-s 指定源IP
-o 指定输出网络设备
-j 控制类型
--to 指定整个网段192.168.233.0/24 从ens36出去时,做源地址转换,转换成10.0.0.10
7.重启网卡 systemctl restart network
8.查看外网的日志


DANT目的地址转换
1.路由器设置规则

-d 11.0.0.11 指定做为目的地址转换的IP地址
-i 从指定的设备进入本机
-p指定协议
-j DNAT 使用目的地址转换
--to 192.168.233.10
外网想要访问内网的192.168.233.10:80的这个web服务,只需要访问11.0.0.11就可以访问内网的web服务
iptables -t nat -A PREROUTING -d 10.0.0.10 -i ens36 -p tcp --dport 80 -j DNAT --to 20.0.0.10:80
抓包
在Linux当中如何抓包
tcpdump就是Linux自带的抓包工具(最小化安装时不带的,需要额外安装)
静态
tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.233.0/24 -w /opt/target.cap
tcp 指定抓包的协议 udp icmp 第一个参数,可以不指定协议
-i 只抓经过指定设备的包
-t 不显示时间戳
-s0 抓完整的数据包
-c 10 指定抓包的目的端口
dst port 指定抓包的目的端口
src net 192.168.233.0/24 指定抓包的IP地址
net 网段
host 主机(IP地址)
-w 保存指定路径
tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 20.0.0.0/24 -w /opt/target.cap
动态
tcpdump -i ens33 -s0 -w /opt/ens33.cap
如果要用wireshark对数据包进行分析,tcpdump在抓包时,要使用-s0抓取完整格式,否则wireshark无法分析
tcpdump -i ens33
firewalld
ubantu的不同 ufw ubantu firewalld开启防火墙 ufw ubantu firewalld 关闭防火墙
它是按照区域来划分的
firewall-config
public:公共区域,默认配置了ssh以及DHCPv6预定服务是放通的,其他全部都是拒绝,默认区域
trusted:信任区域,允许所有的数据包放通
block:限制区域,拒绝所有
drop:丢弃区域,丢弃所有数据包
dmz:非军事区域,默认只运行ssh通过
home:家庭区域。默认只允许ssh通过
internal:内部区域,和home一模一样
external:外部区域,也是默认允许ssh通过,其他全部拒绝
work:工作区域,默认允许ssh通过
firewall-cmd 命令行工具
firewall-cmd --get-default-zone 查看当前系统的默认区域
firewall-cmd --list-all 查看当前区域设定的规则
firewall-cmd --set-default-zone=block 切换区域
firewall-cmd --list-services 查看区域内允许访问的服务
dhcpv6-client 获取ipv6的地址
interfaces: ens33 该区域默认使用的网卡设备
firewall-cmd --zone=pulic --change-interface=ens36 修改区域使用的网卡设备
firewall-cmd --add-service=http --zone=pulic 添加服务
firewall-cmd --add-servicr={ftp,nfs,http} --zone=pulic --permanent 添加多个服务并且永久生效
firewall-cmd --remove-servicr={ftp,nfs,http} --zone=pulic --permanent 删除多个服务
firewall-cmd --reload 重启
查看当前系统的默认区域
firewall-cmd --get-default-zone
查看当前区域设置的规则
firewall-cmd --list-all
切换当前系统的默认区域
firewall-cmd --set-default-zone=block
firewall-cmd --set-default-zone=drop
查看区域内允许访问的服务
firewall-cmd --list-service
firewall-cmd --list-services
#两个都行,效果一样
修改区域默认使用的网络设备
firewall-cmd --zone=public --change-interface=ens36
firewall-cmd --zone=home --remove-interface=ens36
添加服务到默认域中
firewall-cmd --add-service=http --zone=public
多个服务,永久添加
firewall-cmd --add-service={ftp,nfs,http} --zone=public --permanent
#--permanent 永久添加
删除服务
firewall-cmd --remove-service=http --zone=public
重新加载
firewall-cmd --reload
端口管理
firewall-cmd --zone=pulic --add-port=80/tcp 添加端口
firewall-cmd --zone=pulic --add-port=80/tcp --permanent 永久生效
fierwall-cmd --add-source=192.168.233.20 添加源地址
添加端口到默认域中
firewall-cmd --zone=public --add-port=80/tcp
添加端口并指定协议,端口在前协议在后,用 / 分割
firewall-cmd --zone=public --add-port={80,21,3306,22}/tcp
删除端口
firewall-cmd --zone=public --remove-port=80/tcp
添加源IP
firewall-cmd --zone=block --add-source=192.168.233.20
firewall-cmd --get-active-zone
相关文章:
snat、dnat和firewalld
目录 概述 SNAT源地址转换 DANT目的地址转换 抓包 firewalld 端口管理 概述 snat :源地址转换 内网——外网 内网ip转换成可以访问外网的ip 也就是内网的多个主机可以只有一个有效的公网ip地址访问外部网络 DNAT:目的地址转发 外部用户&#…...
[数据集][目标检测]鸡蛋缺陷检测数据集VOC+YOLO格式2918张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2918 标注数量(xml文件个数):2918 标注数量(txt文件个数):2918 标注…...
前后端防重复提交
数据重复提交是一个大忌,会带来无效数据,应该在前端和后端都建议检测防范。 前端一般是按钮按下触发数据提交,如果用户鼠标操作习惯不好,或者鼠标或系统设置问题会导致鼠标连击,如果前端不做相关处理,可能会…...
JVM专题八:JVM如何判断可回收对象
在JVM专题七:JVM垃圾回收机制中提到JVM的垃圾回收机制是一个自动化的后台进程,它通过周期性地检查和回收不可达的对象(垃圾),帮助管理内存资源,确保应用程序的高效运行。今天就让我们来看看JVM到底是怎么定…...
binary_cross_entropy_with_logits函数的参数设定
binary_cross_entropy_with_logits 该函数参数: logits (Tensor) - 输入预测值。其数据类型为float16或float32。 label (Tensor) - 输入目标值,shape与 logits 相同。数据类型为float16或float32。 weight (Tensor,可选) - 指定每个批次二…...
Python 面试【★★★★★】
欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
C# StringBuilder
以下是一些基本的 StringBuilder 使用方法:创建 StringBuilder 实例:追加字符串:插入字符串:删除字符串:替换字符串:清空 StringBuilder:转换 StringBuilder 为字符串:使用容量&…...
4个文章生成器免费版分享,让文章创作更轻松便捷
在当今这个信息飞速传播的时代,文章创作的重要性愈发凸显。无论是从事内容创作的专业人士,还是偶尔需要撰写文章的普通大众,都希望能更高效地完成文章创作任务。而在实际操作中,我们常常会遇到思路卡顿、没有创作灵感的问题。今天…...
redis-cluster(集群模式搭建)
redis中间件版本: redis-5.0.5环境介绍 这里使用服务器数量3,分别为172.0.0.1,172.0.0.2,172.0.0.3,每台机器redis节点数量2个,共6个redis节点构成redis-cluster模式。编译安装包 在172.0.0.1的机器上进入安装目录 cd …...
使用vite官网和vue3官网分别都可以创建vue3项目
问: npm init vitelatest 和 npm create vuelatest创建的vue3项目有什么区别? 回答: npm init vitelatest 和 npm create vuelatest 分别是使用 Vite 和 Vue CLI 工具创建 Vue 项目的两种方式,它们之间有几个主要区别: 1. **构建工具:** …...
PDF处理篇:如何调整 PDF 图像的大小
将视觉效果无缝集成到 PDF 中的能力使它们成为强大的通信工具。然而,笨拙的图像大小会迅速扰乱文档的流程,阻碍清晰度和专业性。幸运的是,GeekerPDF 和Adobe Acrobat等流行的应用程序提供了用户友好的解决方案来应对这一挑战。这个全面的指南…...
STM32 HAL库里 串口中断回调函数是在怎么被调用的?
跟着正点原子学习的HAL库写串口接收程序的时候一直有困惑,使用HAL_UART_Receive_IT开启接收中断后,为啥处理函数要写在HAL_UART_RxCpltCallback里,中断发生的时候是怎么到这个回调函数里去的? void MX_USART1_UART_Init(void) {h…...
音视频入门基础:H.264专题(5)——FFmpeg源码中 解析NALU Header的函数分析
音视频入门基础:H.264专题系列文章: 音视频入门基础:H.264专题(1)——H.264官方文档下载 音视频入门基础:H.264专题(2)——使用FFmpeg命令生成H.264裸流文件 音视频入门基础&…...
RT-Thread ENV-Windows v2.0.0安装教程
前言 前几天RT-Thread官方更新了env工具,开源仓库的Kconfig的写法都不大一样了;如果继续用原来的env工具,拉新代码之后很多示例都编译不了 在最新的env工具中menuconfig全面采用kconfiglib,升级env脚本和python版本,改…...
[HBM] HBM TSV (Through Silicon Via) 结构与工艺
依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解DDR》 全文 3300 字。 1 概念 1.1 什么是HBM TSV 使用 TSV 堆叠多个DDR DRAM成为一块HBM, 成倍提高了存储器位宽, 一条位宽相当于高速公路的一条车道, 车道越多ÿ…...
基于STM32的温湿度检测TFT屏幕proteus恒温控制仿真系统
一、引言 本文介绍了一个基于STM32的恒温控制箱检测系统,该系统通过DHT11温湿度传感器采集环境中的温湿度数据,并利用TFT LCD屏幕进行实时显示。通过按键切换页面显示,通过按键切换实现恒温控制箱的恒温控制。为了验证系统的可靠性和稳定性&…...
【Qt+opencv】编译、配置opencv
文章目录 前言下载opencv编译opencvmingw版本 总结 前言 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它包含了超过2500个优化的算法。这些算法可以用来检测和识别面部,识别对象&#x…...
RDMA建链的3次握手和断链的4次挥手流程?
文章目录 基础信息建链 3次握手断链4次挥手建联状态active端passive端 报文结构函数关系其他后记 基础信息 CM: Communication Management 通信管理 连接管理SIDR: Service ID Resolution Protocol. 作用: enables users of Unreliable Datagram service to locate …...
实验4 图像空间滤波
1. 实验目的 ①掌握图像空间滤波的主要原理与方法; ②掌握图像边缘提取的主要原理和方法; ③了解空间滤波在图像处理和机器学习中的应用。 2. 实验内容 ①调用 Matlab / Python OpenCV中的函数,实现均值滤波、高斯滤波、中值滤波等。 ②调…...
独辟蹊径:我是如何用Java自创一套工作流引擎的(下)
作者:后端小肥肠 创作不易,未经允许严禁转载。 姊妹篇:独辟蹊径:我是如何用Java自创一套工作流引擎的(上)_java工作流引擎-CSDN博客 1. 前言 在上一篇博客中,我们详细介绍了如何利用Java语言从…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
