SNAT和DNAT策略

news2024/11/24 4:03:22

文章目录

  • 1.SNAT策略及应用
    • 1.1 SNAT原理与应用
    • 1.2 SNAT策略的工作原理
    • 1.3 实验步骤
  • 2.DNAT策略
    • 2.1 DNAT策略的概述
    • 2.1 DNAT原理与应用
    • 2.3 实验步骤
  • 3.规则的导出、导入
  • 4. 总结

1.SNAT策略及应用

1.1 SNAT原理与应用

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

SNAT原理:修改数据包的源地址

SNAT转换前提条件:

  • 局域网各主机已正确设置IP地址、子网掩码、默认网关地址;

  • Linux网关开启IP路由转发;

#####临时打开
echo 1 > /proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip_forward=1

#####永久打开
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 		#将此行写入配置文件

sysctl -p      #加载,读取修改后的配置

1.2 SNAT策略的工作原理

SNAT的典型应用环境

局域网共享上网

在这里插入图片描述
未作SNAT转换时的情况

在这里插入图片描述

在这里插入图片描述

SNAT转换1:固定的公网IP地址;

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to 12.0.0.1  #-t指定nat表,-s指定源地址或源地址网段,-o指定出站网卡,-j指定规则类型,-o修改源地址为网关服务器的外网网卡地址或者外网地址池

iptables -t nat -A POSTROUTING -s 192.168.80.0/24(内网IP) -o ens33( 出站外网网卡)-j SNAT --to-source 12.0.0.1-12.0.0.10(外网IP或地址池)										                    	

SNAT转换2:非固定的公网IP地址(共享动态IP地址);

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j MASQUERADE   #-j MASQUERADE伪装成一个随机IP

小知识扩展:

一个IP地址做SNAT转换,一般可以让内网100到200 台主机实现上网。

1.3 实验步骤

实验环境说明:

内网客户端主机:CentOS 7-3

网关服务器:CentOS 7-2

外网服务端模拟:CentOS 7-4

SNAT的网络拓扑图:
在这里插入图片描述
注意:

  • 切记所有主机、服务端以及网关服务器都需要关闭防火墙,并禁止开机自启动功能=;

  • 需要在所有主机和服务器上清空iptables的所有规则以及iptables中nat表的所有规则

[root@myhost2 ~]# systemctl stop firewalld
[root@myhost2 ~]# setenforce 0
[root@myhost2 ~]# systemctl disable firewalld.service
[root@myhost2 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded 
   
[root@clr ~]# iptables -F && iptables -t nat -F

具体实验步骤:

外网服务端模拟:CentOS 7-4

[root@clr ~]# df  #查看光盘是否挂载
文件系统          1K-块    已用     可用 已用% 挂载点
/dev/sr0        4600876 4600876        0  100% /mnt
[root@clr ~]# yum -y install httpd   #安装http服务

[root@clr /var/www]# cd /var/www/html/  #http服务的网页目录
[root@clr /var/www/html]# ls
[root@clr /var/www/html]# echo 'this is test web!' > test.html   #在http的网页目录中写入数据this is test web!
[root@clr /var/www/html]# systemctl start httpd     #启动服务后,在网页地址栏中搜索验证该主机的http服务是否能够正常使用
[root@clr /var/www/html]# cd /etc/sysconfig/network-scripts/   
[root@clr /etc/sysconfig/network-scripts]# vim ifcfg-ens33   #修改外网服务端的IP以及网关地址
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=96bad9fa-55ed-43dd-a1a7-83b7db0e1b1a
DEVICE=ens33
ONBOOT=yes
IPADDR=12.0.0.200   #外网服务器地址
NETMASK=255.255.255.0
GATEWAY=12.0.0.30   #网关服务器的外网网卡地址
#DNS1=192.168.80.2
[root@clr ~]# cd /var/log/httpd/  #查看http服务的日志文件
[root@clr /var/log/httpd]# ls
access_log  error_log
[root@clr /var/log/httpd]# cd /etc/httpd/logs/
[root@clr /etc/httpd/logs]# ls
access_log  error_log
[root@clr /etc/httpd/logs]# grep 'test.html' access_log  #过滤包含有http服务网页目录的日志信息
192.168.80.1 - - [21/May/2023:17:20:36 +0800] "GET /test.html HTTP/1.1" 200 18 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"
192.168.80.128 - - [21/May/2023:18:43:34 +0800] "GET /test.html HTTP/1.1" 200 18 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
12.0.0.30 - - [21/May/2023:19:00:43 +0800] "GET /test.html HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
12.0.0.30 - - [21/May/2023:19:01:56 +0800] "GET /test.html HTTP/1.1" 200 18 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

内网客户端主机:CentOS 7-3

在这里插入图片描述

开启IP转发功能后,可以在内网客户端查看到外网服务端的网页文件;

在这里插入图片描述

内网网关服务器:CentOS 7-2

修改内网网关服务器对接外网网卡ens33的IP地址;

在这里插入图片描述

修改内网网关服务器对接内网网卡ens35的IP地址;

在这里插入图片描述

[root@clr ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        2.0G     0  2.0G    0% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           2.0G   13M  2.0G    1% /run
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1        38G  5.6G   32G   16% /
tmpfs           394M   48K  394M    1% /run/user/1000
/dev/sr0        4.4G  4.4G     0  100% /run/media/cCLR/CentOS 7 x86_64
[root@clr ~]# mount /dev/sr0 /mnt/  #挂载挂盘
mount: /dev/sr0 写保护,将以只读方式挂载
[root@clr ~]# yum install -y iptables iptables.service   #安装iptables以及iptables.service服务
[root@clr ~]# rpm -q iptables
iptables-1.4.21-35.el7.x86_64
[root@clr ~]# systemctl start iptables.service
[root@clr ~]# systemctl enable iptables.service
[root@clr ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
[root@clr ~]# vim /etc/sysctl.conf
[root@clr ~]# sysctl -p  #加载
net.ipv4.ip_forward = 1  #开启IP转发功能 

[root@clr ~]# iptables -t filter -A FORWARD -s 192.168.80.0/24 -j ACCEPT  #在filter表中添加放通允许转发192.168.80.0/24网段的数据包
[root@clr ~]# iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to 12.0.0.30
[root@clr ~]# iptables -nL 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  192.168.80.0/24      0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@clr ~]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.80.0/24      0.0.0.0/0            to:12.0.0.30

在这里插入图片描述

2.DNAT策略

2.1 DNAT策略的概述

在这里插入图片描述

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

2.1 DNAT原理与应用

DNAT 应用环境:
在Internet中发布位于局域网内的服务器;
DNAT原理:
修改数据包的目的地址。
DNAT转换前提条件:

1.局域网的服务器能够访问Internet;

2.网关的外网地址有正确的DNS解析记录;

3.Linux网关开启IP路由转发;

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 	
sysctl -p 		#加载

DNAT转换1:发布内网的Web服务

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

DNAT转换2:发布时修改目标端口

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

#在外网环境中使用SSH测试
ssh -p 250 root@12.0.0.1

yum -y install net-tools 		#若没有 ifconfig 命令可提前使用 yum 进行安装
ifconfig ens33

注意:使用DNAT时,同时还有配合SNAT使用,才能实现响应数据包的正确返回;
SNAT是内网访问到外网DNAT是外网访问内网NAT+DNAT实现外网既可以访问内网,内网也可以访问外网

知识扩展:

主机型防火墙 主要使用== INPUT、OUTPUT 链,设置规则时一般要详细的指定到端口==.
网络型防火墙 主要使用 FORWARD 链,设置规则时很少去指定到端口,一般指定到IP地址或者到网段即可.

2.3 实验步骤

实验环境说明:

外网客户端主机:CentOS 7-4

网关服务器:CentOS 7-2

内网服务端模拟:CentOS 7-3

在这里插入图片描述
网关服务器:CentOS 7-2
在这里插入图片描述
在这里插入图片描述
关闭防火墙,并禁止开机自启动功能;
在这里插入图片描述
在这里插入图片描述

[root@clr /etc/sysconfig/network-scripts]#  vim /etc/sysctl.conf  #修改该文件,开启ip路由转发功能
[root@clr /etc/sysconfig/network-scripts]# sysctl -p  #加载
net.ipv4.ip_forward = 1

在这里插入图片描述

[root@clr ~]# iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.30 -p tcp --dport 8080 -j DNAT --to 192.168.80.20:80       #添加DNAT策略,修改入站的目的地址  
[root@clr ~]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            12.0.0.30            tcp dpt:8080 to:192.168.80.20:80

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
[root@clr ~]# iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to 12.0.0.30   #添加SNAT策略,修改出站的源地址  
[root@clr ~]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            12.0.0.30            tcp dpt:8080 to:192.168.80.20:80

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.80.0/24      0.0.0.0/0            to:12.0.0.30

在这里插入图片描述

[root@clr /opt]# iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.30 -p tcp --dport 2345 -j DNAT --to 192.168.80.20:22  #将192.168.80.20:22的IP地址和端口号映射为12.0.0.30:2345
[root@clr /opt]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            12.0.0.30            tcp dpt:8080 to:192.168.80.20:80
DNAT       tcp  --  0.0.0.0/0            12.0.0.30            tcp dpt:2345 to:192.168.80.20:22

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.80.0/24      0.0.0.0/0            to:12.0.0.30

此时使用其他主机连接内网服务器(192.168.80.20)的情况;
在这里插入图片描述

内网服务端模拟:CentOS 7-3
在这里插入图片描述

[root@myhost2 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        2.0G     0  2.0G    0% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           2.0G   21M  1.9G    2% /run
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda2        38G  5.4G   32G   15% /
tmpfs           394M   36K  394M    1% /run/user/0
/dev/sr0        4.4G  4.4G     0  100% /run/media/root/CentOS 7 x86_64
[root@myhost2 ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@myhost2 ~]# yum install -y httpd  #安装http服务
[root@myhost2 ~]# systemctl restart network #重启网卡
[root@myhost2 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.80.20  netmask 255.255.255.0  broadcast 192.168.80.255
[root@myhost2 ~]# systemctl restart httpd
[root@myhost2 ~]# netstat -lntp | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN      4169/httpd          

在这里插入图片描述

外网客户端主机:CentOS 7-4

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

在这里插入图片描述

在这里插入图片描述

3.规则的导出、导入

防火墙规则的备份和还原,导出(备份)所有表的规则

iptables-save > /opt/ipt.txt

导入(还原)规则

iptables-restore < /opt/ipt.txt
将iptables规则文件保存在 /etc/sysconfig/iptables 中,iptables服务启动时会自动还原规则
iptables-save > /etc/sysconfig/iptables
systemctl stop iptables						#停止iptables服务会清空掉所有表的规则
systemctl start iptables					#启动iptables服务会自动还原/etc/sysconfig/iptables 中的规则
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
-w** ./target.cap :保存成cap文件,方便用ethereal (即wireshark)分析**

举例:

tcpdump tcp dst port 80 -i ens33 -s0 -w /opt/ens33.cap  #抓tcp协议的80号端口经过ens33网卡的完整数据包,并将抓取的数据包另存到/opt/ens33.cap文件中

在这里插入图片描述
经过DNAT和SNAT转换后的数据包;
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[root@clr /opt]# iptables-save > /opt/ipt.txt  #自定义保存iptables的规则配置文件
[root@clr /opt]# ls
ens33.cap  ipt.txt  rh
[root@clr /opt]# vim ipt.txt
[root@clr /opt]# iptables -F
[root@clr /opt]# iptables -F -t nat  #清空iptables的规则
[root@clr /opt]# iptables-restore < ipt.txt  #从自定义的保存文件中,恢复iptables的策略
[root@clr /opt]# iptables -nL 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  12.0.0.0/24          0.0.0.0/0           
ACCEPT     all  --  192.168.80.0/24      0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@clr /opt]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            12.0.0.30            tcp dpt:8080 to:192.168.80.20:80
DNAT       tcp  --  0.0.0.0/0            12.0.0.30            tcp dpt:2345 to:192.168.80.20:22

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.80.0/24      0.0.0.0/0            to:12.0.0.30
[root@clr /opt]# cd /etc/sysconfig/
[root@clr /etc/sysconfig]# iptables-save > /etc/sysconfig/iptables  #将自定义的iptables策略写入到防火墙的默认文件中,实现开启iptables服务后,可以自动加载自定义的iptables策略

总结:windows用wireshark,linux用tcpdump.

4. 总结

SNAT 内网–>外网转换源地址

iptables -t nat -A POSTROUTING -s 源地址/网段-o出站网卡-j SNAT--to 外网地址

DNAT 外网–>内网 转换目的地址/端口

iptables -t nat -A PREROUTING -i入站网卡  -d原目的地址(一般为网关地址)  -tcp 协议  --dport原目的端口  -j DNAT  --to  内网地址:端口(DNAT要转换成的地址/端口)

导出规则

iptables-save > XXX

导入规则

iptables-restore < XXX

默认规则文件

/etc/sysconfig/iptables

tcpdump Linux系统抓包工具

tcp  协议 net  网段 -i 网卡 -s 0  port端口 -w XXX.cap
          host IP地址

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

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

相关文章

【利用AI让知识体系化】关于浏览器内核的基础知识

I. 介绍 什么是浏览器内核 浏览器内核&#xff08;Browser Engine&#xff09;&#xff0c;也叫浏览器渲染引擎&#xff08;Rendering Engine&#xff09;&#xff0c;是浏览器的核心组成部分&#xff0c;它负责将 HTML、CSS、JavaScript 等代码经过解析和渲染后&#xff0c;…

End-to-End Object Detection with Transformers 论文学习

论文地址&#xff1a;End-to-End Object Detection with Transformers 1. 解决了什么问题&#xff1f; 现有的目标检测算法需要大量的人为先验的设计&#xff0c;如 anchor 和 NMS&#xff0c;整体架构并不是端到端的。现有的检测方法为了去除重叠框&#xff0c;一般会利用 p…

企业级信息系统开发——初探Spring - 利用组件注解符精简Spring配置文件

文章目录 一、打开项目二、利用组件注解符精简Spring配置文件&#xff08;一&#xff09;创建新包&#xff08;二&#xff09;复制四个类&#xff08;三&#xff09;修改杀龙任务类&#xff08;四&#xff09;修改救美任务类&#xff08;五&#xff09;修改勇敢骑士类&#xff…

NEEPU Sec 2023 公开赛 writeup

文章目录 WebCute CirnoCute Cirno(Revenge) RevHow to use ida?BaseHow to use python?IKUN检查器junk code CryptoFunnyRsaLossloud Misc吉林第一站倒影Shiro重生之我是CTFer 问卷 Web Cute Cirno 学艺不精的我脑袋要炸了 在Cirno界面的源代码中发现任意读 考虑之前的比…

在Ubuntu20.04部署Flink1.17实现基于Flink GateWay的Hive On Flink的踩坑记录(一)

在Ubuntu20.04部署Flink1.17实现基于Flink GateWay的Hive On Flink的踩坑记录&#xff08;一&#xff09; 前言 转眼间&#xff0c;Flink1.14还没玩明白&#xff0c;Flink已经1.17了&#xff0c;这迭代速度还是够快。。。 之前写过一篇&#xff1a;https://lizhiyong.blog.c…

View中的滑动冲突

View中的滑动冲突 1.滑动冲突的种类 滑动冲突一般有3种, 第一种是ViewGroup和子View的滑动方向不一致 比如: 父布局是可以左右滑动,子view可以上下滑动 第二种 ViewGroup和子View的滑动方向一致 第三种 第三种类似于如下图 2.滑动冲突的解决方式 滑动冲突一般情况下有2…

Ubuntu 20.04上安装和配置Samba

介绍&#xff1a; Samba是一个开源的软件套件&#xff0c;它允许不同操作系统之间共享文件和打印机。在Ubuntu 20.04上安装和配置Samba是一种方便的方法&#xff0c;可以在本地网络中共享文件夹&#xff0c;使多台计算机能够轻松访问共享文件。本文将向您展示如何在Ubuntu 20.0…

Properties使用

Properties是一种特殊的文本文件&#xff0c;可用来存储配置文件&#xff0c;或者存储一些键值对格式的数据信息 一、底层原理 分析源码可知&#xff0c;Properties底层实现是Map 二、创建&常用方法&遍历 1、创建 // 创建Properties对象 Properties properties …

设置Ubuntu 20.04的静态IP地址

引言&#xff1a;我们做嵌入式或者其他的项目时&#xff0c;有时候不免发现&#xff0c;Ubuntu的ip地址经常会改变&#xff0c;这个时候就需要我们手动配置静态IP了。 给Ubuntu设置一个静态IP地址有以下几个好处&#xff1a; 持久性&#xff1a;静态IP地址是固定不变的&#xf…

一.RxJava

1.RxJava使用场景 RxJava核心思想 Rx思维:响应式编程,从起点到终点,中途不能断掉,并且可以在中途添加拦截. 生活中的例子: 起点(分发事件,我饿了)->下楼->去餐厅->点餐->终点(吃饭,消费事件) 程序中的例子: 起点(分发事件,点击登录)->登录API->请求服务器-…

Lucene(3):Lucene全文检索的流程

1 Lucene准备 Lucene可以在官网上下载&#xff1a;Apache Lucene - Welcome to Apache Lucene。我们使用的是7.7.2版本&#xff0c;文件位置如下图&#xff1a; 使用这三个文件的jar包&#xff0c;就可以实现lucene功能 2 开发环境准备 JDK&#xff1a; 1.8 &#xff08;Luce…

python 面向对象--类,对象,属性,方法,魔法方法

1.理解面向对象思想 面向过程思想: 遇到问题,分析步骤.按照步骤解决问题.(复杂,重复) 面向对象思想: 遇到问题,找到能解决问题的对象去解决.(简单,复用) 2.类和对象 # 定义类的格式: # class 类名(): # 代码 # ......class Student(): ​def study(self):print(学生好…

【连续介质力学】Voigt符号

Voigt符号 一个对称二阶张量有6个独立的分量&#xff0c;那么就可以将他表示成列向量的形式&#xff1a; 这种表示方式为Voigt符号&#xff0c;也可以将二阶张量表示成&#xff1a; 正如minor对称的四阶张量C&#xff0c; C i j k l C j i k l C i j l k C j i l k C_{ij…

hive函数

函数 Hive的函数分为两大类∶内置函数(Built-in Functions )、用户定义函数UDF (User-Defined Functions ) . 内置函数可分为︰数值类型函数、日期类型函数、字符串类型函数、集合函数、条件函数等; 用户定义函数根据输入输出的行数可分为3类:UDF、UDAF、UDTF。 UDF:普通函…

一图看懂 charset_normalizer 模块:字符集规范化,真正的第一个通用字符集检测器,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 charset_normalizer 模块&#xff1a;字符集规范化&#xff0c;真正的第一个通用字符集检测器&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&a…

AI人工智能决策树分类器的原理、优缺点、应用场景和实现方法

决策树分类器&#xff08;Decision Tree Classifier&#xff09;是一种常用的机器学习算法&#xff0c;它被广泛应用于分类和回归问题中。在人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;领域中&#xff0c;决策树分类器是一种简单而有效的算法&…

DETR3D 论文学习

1. 解决了什么问题&#xff1f; 对于低成本自动驾驶系统&#xff0c;仅凭视觉信息进行 3D 目标检测是非常有挑战性的。目前的多相机 3D 目标检测方法有两类&#xff0c;一类直接对单目图像做预测&#xff0c;没有考虑 3D 场景的结构或传感器配置。这类方法需要多步后处理&…

tcpdump 抓包和记录、tshark 过滤抓包

目录 tcpdump 一、包名 二、可用参数 tcpdump -nn tcpdump -nn -i 网卡名 —— 指定显示的网卡 tcpdump -nn -i 网卡名 port 端口名 —— 指定显示的端口 tcpdump -nn -i 网卡名 not port 端口名 —— 排除指定的端口不显示 tcpdump -nn -i …

JavaWeb15 - web 应用常用功能 -文件上传下载

1. 基本介绍 文件的上传和下载&#xff0c;是常见的功能。后面项目就使用了文件上传下载。如果是传输大文件&#xff0c;一般用专门工具或者插件文件上传下载需要使用到两个包 , 需要导入说明: 2. 文件上传 2.1 文件上传的基本原理 ● 文件上传原理示意图, 一图胜千言 …

进程调度策略

1 先进先出 FIFO 2 最短任务优先 SJF https://blog.51cto.com/u_13064014/5079546?btotalstatistic