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语言从…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
