当前位置: 首页 > news >正文

Linux系统之iptables应用SNAT与DNAT

目录

SNAT

一.SNAT的原理介绍

1.应用环境

2.SNAT原理

3.SNAT转换前提条件

二.开启SNAT

1.临时打开

2.永久打开

三.SNAT的转换

1.固定的公网IP地址

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

四.SNAT实验

1.实验环境准备

2.配置web服务器(192.168.100.100)

3.配置网关服务器(192.168.100.101、12.0.0.1)

4.配置win10客户端(12.0.0.10)

5.web服务器网络测试

6.Win10客户端的网络测试

7.网关服务器开启SNAT的命令

8.使用win10客户端来访问web服务器的apache网站 

9.配置网关服务器的iptables规则

10.清除记录再次使用Win10客户机进行访问web服务器 

DNAT

一.DNAT的原理介绍

1.应用环境

2.DNAT原理

3.DNAT转换前提条件

 二.DNAT的转换

1.发布内网的Web服务

2.发布时修改目标端口

三.DNAT实验

1.实验环境准备

2.配置网关服务器(192.168.192.110、12.0.0.254)

3.配置web服务器(192.168.192.100)

4.配置win10客户端(12.0.0.200)

5.网关服务器开启SNAT

6.外网客户端访问内网服务端

7.配置网关服务器的iptables规则

8.除记录再次使用Win10客户机进行访问web服务器 

四.SNAT和DNAT的区别

五.iptables规则的备份与还原

1.备份

2.还原

3.设置规则

六.tcpdump:Linux抓包


SNAT

一.SNAT的原理介绍

1.应用环境

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

2.SNAT原理

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

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

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

3.SNAT转换前提条件

  • 局域网各主机已正确设置IP地址、子网掩码、默认网关地址
  • Linux网关开启IP路由转发
  • linxu系统本身是没有转发功能,只有路由发送数据

二.开启SNAT

1.临时打开

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

2.永久打开

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

三.SNAT的转换

1.固定的公网IP地址

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

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 台主机实现上网

四.SNAT实验

 

1.实验环境准备

web服务器IP地址:192.168.100.100(内网)

                                 关闭防火墙和selinux、开启http服务

网关服务器内网iIP地址:192.168.100.101

                  外网IP地址:12.0.0.1

                                         关闭防火墙和selinux、开启http服务

win10客户端IP地址:12.0.0.10

VMware的虚拟网络编辑器中默认nat1模式网段:192.168.100.0,nat2模式网段:12.0.0.0
 

注意查看真机的网段与虚拟机所设网段是否一致

2.配置web服务器(192.168.100.100)

第一步:设置网络连接模式为VMnet1

第二步: 开启虚拟机终端,配置网卡ens33如下

vim /etc/sysconfig/network-scrips/ifcfg-ens33
#修改网卡配置文件

 

第三步:关闭防火墙和selinux、安装并开启http服务 

yum install httpd -y          #安装httpd
systemctl stop firewalld      #关闭防火墙
setenforce 0                  #关闭selinux
systemctl start httpd         #开启httpd
systemctl status httpd        #查看状态

3.配置网关服务器(192.168.100.101、12.0.0.1)

第一步:设置网络连接模式为VMnet1与2

第二步: 开启虚拟机终端,配置网卡ens33并复制修改ens36

使用ifconfig命令查看新加网卡为ens36或ens37等

vim /etc/sysconfig/network-scrips/ifcfg-ens33
cd /etc/sysconfig/network-scrips
cp ifcfg-ens33 ifcfg-ens36
vim /etc/sysconfig/network-scrips/ifcfg-ens36
systemctl restart network
ifconfig

 

 

第三步:关闭防火墙和selinux、安装并开启http服务  

yum install httpd -y          #安装httpd
systemctl stop firewalld      #关闭防火墙
setenforce 0                  #关闭selinux
systemctl start httpd         #开启httpd
systemctl status httpd        #查看状态

 

4.配置win10客户端(12.0.0.10)

第一步:设置网络连接模式为VMnet2

第二步:配置iIP地址和网关为下图所示 

5.web服务器网络测试

6.Win10客户端的网络测试

7.网关服务器开启SNAT的命令

vim /etc/sysctl.conf
添加内容:
net.ipv4.ip_forward = 1可以使用sysctl -p读取修改后的配置

8.使用win10客户端来访问web服务器的apache网站 

 

查看web服务器的访问日志,显示访问的ip为win10客户机的ip

tail /var/log/httpd/access_log

9.配置网关服务器的iptables规则

第一步:查看网关服务器的iptables规则并清除

iptables -nL			#查看规则
iptables -nL -t nat		#查看规则
iptables -F				#清除iptables的规则
iptables -F -t nat		#清除iptables的规则

第二步:添加 SNAT转换∶固定的公网IP地址 

iptables -t nat -A POSTROUTING -s 12.0.0.0/24 -o ens33 -j SNAT --to-source 192.168.100.101

10.清除记录再次使用Win10客户机进行访问web服务器 

 第一步:清除浏览器缓存数据

第二步:再次使用win10客户端来访问web服务器的apache网站

第三步:查看web服务器的访问日志,可以看到现在显示的访问ip为网关地址的ip,是我使用iptables配置的ip 

tail /var/log/httpd/access_log

从  原外网客户机IP地址 变为  网关服务器内网网关地址

DNAT

一.DNAT的原理介绍

1.应用环境

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

2.DNAT原理

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

3.DNAT转换前提条件

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

 二.DNAT的转换

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

2.发布时修改目标端口

#发布局域网内部的OpenSSH服务器, 外网主机需使用250端口进行连接
iptables-t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp--dport 250-jDNAT --to 192.168.100.102:22

三.DNAT实验

1.实验环境准备

web服务器IP地址:192.168.192.100(内网)

                                 关闭防火墙和selinux、开启http服务

网关服务器内网iIP地址:192.168.192.110

                  外网IP地址:12.0.0.254

                                         关闭防火墙和selinux、开启http服务

win10客户端IP地址:12.0.0.200

VMware的虚拟网络编辑器中默认nat1模式网段:192.168.192.0,nat2模式网段:12.0.0.0

2.配置网关服务器(192.168.192.110、12.0.0.254)

第一步:设置网络连接模式为VMnet1与2

第二步: 开启虚拟机终端,配置网卡ens33并复制修改ens36

使用ifconfig命令查看新加网卡为ens36或ens37等

vim /etc/sysconfig/network-scrips/ifcfg-ens33
cd /etc/sysconfig/network-scrips
cp ifcfg-ens33 ifcfg-ens36
vim /etc/sysconfig/network-scrips/ifcfg-ens36
systemctl restart network
ifconfig

 

第三步:关闭防火墙和selinux、安装并开启http服务  

yum install httpd -y          #安装httpd
systemctl stop firewalld      #关闭防火墙
setenforce 0                  #关闭selinux
systemctl start httpd         #开启httpd
systemctl status httpd        #查看状态

 

3.配置web服务器(192.168.192.100)

第一步:设置网络连接模式为VMnet1

第二步:开启虚拟机终端,配置网卡ens33如下

vim /etc/sysconfig/network-scrips/ifcfg-ens33
#修改网卡配置文件

第三步:关闭防火墙和selinux、安装并开启http服务  

yum install httpd -y          #安装httpd
systemctl stop firewalld      #关闭防火墙
setenforce 0                  #关闭selinux
systemctl start httpd         #开启httpd
systemctl status httpd        #查看状态

4.配置win10客户端(12.0.0.200)

第一步:设置网络连接模式为VMnet2

第二步:配置iIP地址和网关为下图所示 

5.网关服务器开启SNAT

vim /etc/sysctl.conf
添加内容:
net.ipv4.ip_forward = 1sysctl -p
#验证

6.外网客户端访问内网服务端

第一步:清除浏览器缓存数据

第二步:使用win10客户端来访问web服务器的apache网站

第三步:查看web服务器的访问日志,显示访问的ip为win10客户机的ip

7.配置网关服务器的iptables规则

第一步:查看网关服务器的iptables规则并清除

iptables -nL			#查看规则
iptables -nL -t nat		#查看规则
iptables -F				#清除iptables的规则
iptables -F -t nat		#清除iptables的规则

第二步:添加SNAT与DNAT规则

iptables -t nat -A POSTROUTING -s 192.168.192.0/24 -o ens36 -j SNAT --to 12.0.0.254
iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.254 -p tcp --dport 8080 -j DNAT --to 192.168.192.100:80
iptables -nL -t nat

8.清除记录再次使用Win10客户机进行访问web服务器 

第一步:清除浏览器缓存数据

第二步:再次使用win10客户端来访问web服务器的apache网站,输入网关地址即可

四.SNAT和DNAT的区别

从定义上讲,SNAT是原地址转换,DNAT是目标地址转换。区分这两个功能可以简单的由服务的发起者是谁来区分,内部地址要访问公网上的服务时,内部地址会主动发起连接,将内部地址转换成公有ip。

五.iptables规则的备份与还原

1.备份

默认备份文件/etc/sysconfig/iptables

iptables-save > /opt/ibf.txt
#重定向输入到opt目录下新文件ibf.txt中

2.还原

iptables-restore < /opt/ibf.txt
#快速还原可以使用
iptables -nL
#查看最初状态
iptables -F 
#删除模拟丢失规则
iptables -nL
#查看是否为空iptables-restore < /opt/ibf.txt
#快速还原
iptables -nL
#查看是否还原

3.设置规则

#重定向输入到默认配置文件当中
iptables-save >/etc/sysconfig/iptables      #重启防火墙
systemctl stop iptables
systemctl start iptables#查看规则
iptables -nL
iptables -nL -t nat

六.tcpdump:Linux抓包

tcpdump tcp-i ens33 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
  • tcp∶ ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
  • -i ens33 ∶只抓经过接口ens33的包
  • -t ∶不显示时间戳
  • -s 0 ∶ 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包
  • -c 100 ∶只抓取100个数据包
  • dst port ! 22 ∶不抓取目标端口是22的数据包
  • src net 192.168.1.0/24 ∶数据包的源网络地址为192.168.1.0/24。Net:网段,host:主机
  • -w ./target.cap ∶ 保存成cap文件,方便用ethereal (即wireshark)分析
     

相关文章:

Linux系统之iptables应用SNAT与DNAT

目录 SNAT 一.SNAT的原理介绍 1.应用环境 2.SNAT原理 3.SNAT转换前提条件 二.开启SNAT 1.临时打开 2.永久打开 三.SNAT的转换 1.固定的公网IP地址 2.非固定的公网IP地址(共享动态IP地址) 四.SNAT实验 1.实验环境准备 2.配置web服务器&#xff08;192.168.100.100…...

2023美赛ABCDEF思路汇总

注&#xff1a;以下每个题思路仅是个人所想所做&#xff0c;不代表他人。由于时间仓促完成这么多&#xff0c;难免有不足之处&#xff0c;还请谅解。 文章目录A题第一大问第二大问B题第一问第二问第三问C题第一问第二问第三问第四问D题第一问第二问第三问第四问第五问E题第一问…...

Damask和abaqus晶体塑性联合仿真培训通知

一 软件介绍 DAMASK 是一个统一的多物理晶体塑性模拟包。连续体力学边值问题的求解需要连接每个材料点的变形和应力的本构响应,该问题在 DAMASK 中基于晶体可塑性使用各种本构模型和均质化方法能够被有效解决。除此之外&#xff0c;孤立地处理力学已不足以研究新兴的先进高强度…...

用javascript分类刷leetcode17.栈(图文视频讲解)

目录 Stack的特点&#xff1a;先进后出&#xff08;FILO&#xff09; 使用场景&#xff1a;十进制转2进制 函数调用堆栈 js里没有栈&#xff0c;但是可以用数组模拟 42/2 42%20 21/2 21%21 10/2 10%20 5/2 5%21 2/2 2%20 1/2 1%21 stack: [0,1,0,1,0,1] res: 1 0 1 …...

转换大小写与完成字符串反转

问题 编写一个程序&#xff0c;实现字符串的大小写转换并倒序输出&#xff0c;如输入为“HelloWord”&#xff0c;输出为“DROwOLLEH”。 方法 需要掌握char与int的转换&#xff0c;需要将helloord大写输出和W小写输出&#xff0c;不能直接使用toUpperCase方法。因此可以使用ch…...

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——InputFormat数据输入

3.1.1切片与MapTask并行度决定机制 1、问题引出 MapTask的并行度决定Map阶段的任务处理并发度&#xff0c;进而影响到整个Job的处理速度。 思考&#xff1a;1G的数据&#xff0c;启动8个MapTask&#xff0c;可以提高集群的并发处理能力。那么1K的数据&#xff0c;也启动8个M…...

【Opencv 系列】 第4章 直方图

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言1、直方图的定义、意义、特征2、直方图&#xff1a;2.1 灰度直方图2.2 彩色直方图前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 …...

C#反射原理

一、前言反射&#xff08;Reflection&#xff09;的内容在博客中已经写了一篇&#xff0c;什么是反射&#xff0c;反射的使用&#xff0c;反射优缺点总结&#xff1b;在面试中突然被问道反射的原理&#xff0c;按照理解反射就是在Reflection命名空间和对象的Type对象获取类的方…...

python+vue微信小程序的线上服装店系统

服装行业是一个传统的行业。根据当前发展现状,网络信息时代的全面普及,服装行业也在发生着变化,单就服饰这一方面,利用手机购物正在逐步进入人们的生活。传统的购物方式,不仅会耗费大量的人力、时间,有时候还会出错。小程序系统伴随智能手机为我们提供了新的方向。手机线上服装…...

众德全自动批量剪辑工具,批量去重伪原创视频,全自动合成探店带货等视频

众德全自动批量剪辑工具已连续更新两年&#xff0c;服务了大大小小的自媒体公司工作室共200多个&#xff0c;成就了几百个草根创业者&#xff0c;实现月入10万&#xff0c;自从创办众德传媒之前&#xff0c;我一直坚信自媒体才是年轻草根创业者的出路&#xff0c;不需要技术门槛…...

【项目精选】基于网络爬虫技术的网络新闻分析(论文+源码+视频)

基于网络爬虫技术的网络新闻分析主要用于网络数据爬取。本系统结构如下&#xff1a; &#xff08;1&#xff09;网络爬虫模块。 &#xff08;2&#xff09;中文分词模块。 &#xff08;3&#xff09;中3文相似度判定模块。 &#xff08;4&#xff09;数据结构化存储模块。 &…...

华为OD机试 - 任务混部(JS)

任务混部 题目 公司创新实验室正在研究如何最小化资源成本,最大化资源利用率,请你设计算法帮他们解决一个任务混部问题:有taskNum项任务,每个任务有开始时间(startTime),结束时间(endTime),并行度(parallelism)三个属性,并行度是指这个任务运行时将会占用的服务…...

Matlab搭建AlexNet实现手写数字识别

Matlab搭建AlexNet实现手写数字识别 个人博客地址 文章目录Matlab搭建AlexNet实现手写数字识别环境内容步骤准备MNIST数据集数据预处理定义网络模型定义训练超参数网络训练和预测代码下载环境 Matlab 2020aWindows10 内容 使用Matlab对MNIST数据集进行预处理&#xff0c;搭建…...

比较全面的HTTP和TCP网络传输的单工、全双工和半双工

文章目录单工、全双工、半双工1. 单工2. 半双工3. 全双工HTTP协议的工作模式TCP协议的工作模式本文参考&#xff1a; 图解网络传输单工、半双工、全双工 - 知乎 (zhihu.com) 问&#xff1a;HTTP是单工的还是双工的还是半双工的 - 简书 (jianshu.com) 关于TCP全双工模式的解释_忙…...

CSS Houdini

前言 最近看了几篇文章&#xff0c;是关于 CSS Houdini 的。作为一个前端搬砖的还真不知道这玩意&#xff0c;虽然不知道的东西挺多的&#xff0c;但是这玩意有点高大上啊。 Houdini 是一组底层 API&#xff0c;它们公开了 CSS 引擎的各个部分&#xff0c;从而使开发人员能够通…...

C++引用

这里写目录标题引用引用的基本使用引用做函数参数引用作为函数返回值引用的本质常量引用引用与指针的区别&的三种作用引用 引用的基本使用 作用&#xff1a; 给变量起别名 语法&#xff1a; 数据类型 &别名 原名 引用的本质是给变量起别名&#xff0c;因此&#xff0…...

YOLOv6-目标检测论文解读

文章目录摘要问题算法网络设计BackboneNeckHead标签分配SimOTA&#xff08;YOLOX提出&#xff09;&#xff1a;TAL&#xff08;Task alignment learning&#xff0c;TOOD提出&#xff09;损失函数分类损失框回归损失目标损失行业有用改进自蒸馏图像灰度边界填充量化及部署实验消…...

【factoryio】使用SCL编写 <机械手控制> 程序

使用虚拟工厂软件和博图联合仿真来编写【scl】机械手控制程序 文章目录 目录 文章目录 前言 二、程序编写 1.机械手运行部分 2.启动停止部分 3.急停复位部分 三、完整代码 总结 前言 在前面我们一起写过了许多案例控制的编写&#xff0c;在这一章我们一起来编写一下一个…...

QT学习记录散件

fromLocal8Bit() qt中fromLocal8Bit()函数可以设置编码。 因为QT默认的编码是unicode&#xff0c;不能显示中文的 而windows默认使用&#xff08;GBK/GB2312/GB18030&#xff09; 所以使用fromLocal8Bit()函数&#xff0c;可以实现从本地字符集GB到Unicode的转换&#xff0c;从…...

[SSD科普之1] PCIE接口详解及应用模式

PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准&#xff0c;它原来的名称为“3GIO”&#xff0c;是由英特尔在2001年提出的&#xff0c;旨在替代旧的PCI&#xff0c;PCI-X和AGP总线标准。一、PCI-E x1/x4/x8/x16插槽模式PCI-E有 x1/…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

python打卡day49@浙大疏锦行

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...