Linux之防火墙

目录

什么是防火墙

分类:

Netfilter(数据包过滤)

防火墙无法完成的任务

iptables 与 firewalld 区别

iptables

iptables执行原则

规则链

概念

分析

流程图

规则链分类

iptables 流量处理动作

iptables表

四种规则表

安装iptables

预处理

管理命令

规则链存储文件

iptables 命令

原则

格式:

案例

        案例1 -- 查看已有的防火墙规则链

        案例2 --- 清空规则  

        案例3 --- 搭建web服务器,设置任何人能通过80端口访问http

        案例4 --- 禁止所有人使用ssh进行远程登录

firewalld

概述

定义

firewalld特点

区域 zone

作用

分析

zone文件中的过滤规则

firewall-cmd可视化界面工具

安装

使用

firewall-cmd命令行工具

firewalld命令生效模式

管理命令

设置命令:firewall-cmd 参数

案例

        案例1 -- 基本命令

        案例2 --- zone区域设置

        案例3 --- 区域中添加规则,放行http

        例4 --- 禁止192.168.48.130 网段的地址进行ping


什么是防火墙

        防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进出

分类:

        硬件防火墙 --- 由厂商设计好的主机硬件,其操作系统主要以提供数据包数据的过滤机制为主,并去掉不必要的功能

        软件防火墙 --- 保护系统网络安全的一套软件(或称为机制),如Netfilter(数据包过滤机制)

Netfilter(数据包过滤)

定义

        netfilter 是一个工作在 Linux 内核的网络数据包处理框架,用于分析进入主机的网络数据包,将数据包的头部数据(硬件地址,软件地址,TCP、UDP、ICMP等)提取出来进行分析,以决定该连接为放行或抵挡的机制,主要用于分析OSI七层协议的2、3、4层

Netfilter分析内容

        拒绝让Internet的数据包进入主机的某些端口

        拒绝某些来源IP的数据包进入

        拒绝让带有某些特殊标志(flag)的数据包进入,如:带有SYN的主动连接标志

        分析MAC地址决定是否连接

防火墙无法完成的任务

        防火墙并不能杀毒清除木马程序(假设主机开放了www服务,防火墙的设置是一定要将www服务的port开放给client端的。假设www服务器软件有漏洞,或者请求www服务的数据包本身就是病毒的一部分时,防火墙是阻止不了的)

        防火墙无法阻止来自内部LAN的攻击(防火墙对于内部的规则设置通常比较少,所以就很容易造成内部员工对于网络无用或滥用的情况)

iptables 与 firewalld 区别

        netfilter数据包过滤机制是由linux内核内建的,不同的内核版本使用的设置防火墙策略的软件不一样,从红帽7系统开始firewalld服务取代了iptables服务

        iptables 与 firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已,即只是一种服务,而真正使用规则干活的是内核的netfilter

        总之,当前Linux 系统中存在多个防火墙管理工具,旨在方便运维人员管理 Linux 系统中的防火墙策略,我们只需要配置妥当其中的一个就足够了。虽然这些工具各有优劣,但它们在防火墙策略的配置思路上是保持一致的

iptables

        早期的 Linux 系统中,默认使用 iptables 防火墙来管理服务和配置防火墙,虽然新型的 firewalld 防火墙管理服务已经被投入使用多年,但iptables 在当前生产环境中还继续使用 ,具有顽强的生命力

iptables执行原则

        防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。

        如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略

 防火墙规则

        通(放行、允许)

        堵(阻止、拒绝)

        当默认策略为拒绝时,就要设置允许规则,否则数据包都进不来;若默认策略为允许时,就要设置拒绝规则,否则数据包都能进来,防火墙也就失去了作用

规则链

概念

        iptables 服务把用于过滤流量的策略条目称之为规则,多条规则组成一个规则链

分析

        数据包经过iptables处理必须闯过5个控制关卡,每个关卡放置5个规则链用于检查规则和处理,每一道关卡中有多个规则,数据报文必须按顺序一个一个匹配这些规则,这些规则串起来就像一条链,所以我们把这些关卡都叫规则链

流程图

规则链分类

        INPUT链 --- 数据包流入时,即数据包从内核流入用户空间

        OUTPUT链 --- 向外发送数据包(流出)时,即数据包从用户空间流出到内核空间,一般不配置

        FORWARD链 --- 处理数据包转发时,即在内核空间中,从一个网络接口进入,到另一个网络接口去(转发过滤)

        PREROUTING链 --- 在对数据包作路由选择之前,即互联网进入局域网

        POSTROUTING链 --- 在对数据包作路由选择之后,即局域网出互联网

注意:

         从内网向外网发送的流量一般都是可控且良性的,因此使用最多的是INPUT 规则链,该规则链可以增大黑客人员从外网入侵内网的难度

例:物业管理公司有两条规定:

  • 禁止小商小贩进入社区;

  • 各种车辆在进入社区时都要登记。

  • 这两条规定是用于社区正门的(流量必须经过的地方),而不是每家的防盗门。根据防火墙策略的匹配顺序,可能会存在多种情况。

  • 如:来访人员是小商小贩,则会被保安拒之门外,也就无需再对车辆进行登记。若来访人员乘坐一辆汽车进入社区正门,则“禁止小商小贩进入社区”的第一条规则就没有被匹配到,因此按照顺序匹配第二条策略,即需要对车辆进行登记。如果是社区居民要进入正门,则这两条规定都不会匹配到,因此会执行默认的放行策略

iptables 流量处理动作

当规则链匹配后应采用以下几种动作来处理匹配流量

        ACCEPT --- 允许流量通过

        REJECT --- 拒绝流量通过,拒绝后回复拒绝信息

        LOG --- 记录日志信息

        DROP --- 拒绝流量通过,流量丢弃不响应

        例:若某天您正在家里看电视,突然听到有人敲门,透过防盗门的猫眼一看是推销商品的,便会在不需要的情况下开门并拒绝他们(REJECT)。但如果您看到的是债主带了十几个小弟来讨债,此时不仅要拒绝开门,还要默不作声,伪装成自己不在家的样子(DROP)

iptables表

        规则链容纳了各种流量匹配规则,规则表则存储了不同功能对应的规则链,总之表里有链,链里有规则

四种规则表

        filter表 --- 用于对数据包过滤,根据具体的规则决定是否放行该数据包(如DROP、ACCEPT、REJECT、LOG),包含三个规则链,INPUT、 FORWARD、 OUTPUT,所谓的防火墙其实基本上是指这张表上的过滤规则,常用

        nat表 --- network address translation,网络地址转换功能,主要用于修改数据包的源、目标IP地址、端口,包含三个规则链,OUTPUT、 PREROUTING、 POSTROUTING

        mangle表 --- 拆解报文,做出修改,并重新封装,主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期)指以及为数据包设置Mark标记,由于需要相应的路由设备支持,因此应用并不广泛,包含全部五个规则链

        raw表 --- 是自1.2.9以后版本的iptables新增的表,用于是否对该数据包进行状态跟踪,在匹配数据包时,raw表的规则要优先于其他表,包含两个规则链,OUTPUT、PREROUTING

注意:

        最终定义的防火墙规则链,都会添加到这四张表中的其中一张表中

安装iptables

预处理

        为了避免firewalld与iptables之间有冲突,如果需要使用 iptables 需要先停止firewalld再进行安装

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# yum list | grep iptables
[root@localhost ~]# yum install iptables-services  -y

管理命令

[root@localhost ~]# systemctl start iptables     # 启动
[root@localhost ~]# systemctl enable iptables    # 开机启动
[root@localhost ~]# systemctl status iptables    # 查看状态
[root@localhost ~]# service iptables save     # 保存设置,否则重启后会恢复默认设置# 注意:不能使用systemctl保存设置

规则链存储文件

[root@localhost ~]# vim /etc/sysconfig/iptables

iptables 命令

原则

        iptables 命令根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,若匹配成,则iptables 会根据策略规则所预设的动作来处理这些流量,由于策略规则的匹配顺序是从上至下,则要把较为严格、优先级较高的策略规则放到前面,以免发生错误

格式:

iptables [-t 表名] 选项 [链名] [条件] [-j 控制动作]iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 控制动作
参数 作用
-t对指定的表进行操作,table必须是raw,nat,filter,mangle中的一个,默认是filter
-p指定要匹配的数据包协议类型
-s匹配源地址IP/MASK,若有!表示取反
-d匹配目的地址IP/MASK
-i 网卡名匹配从这块网卡流入的数据
-o 网卡名匹配从这块网卡流出的数据
-L列出规则链上的所有规则,如果没有指定链,列出表上所有链的所有规则
-A在规则链的末尾加入新规则
-I num在规则链的头部加入新规则
-D num删除指定规则
-R num替换/修改第几条规则
-P设置默认策略,
-F清空所有规则(F:flush是“冲洗、冲掉”的意思)
-N创建新规则链
-X删除指定规则链,这个链必须没有被其它任何规则引用,而且这条链上必须没有任何规则。如果没有指定链名,则会删除该表中所有非内置的链
-E指定的新名字去重命名指定的链
-Z把指定链,或者表中的所有链上的所有计数器清零
-j满足某条件时该执行什么样的动作
-h显示帮助信息

案例

        案例1 -- 查看已有的防火墙规则链

[root@localhost ~]# iptables -nvxL --line# -n:显示数据来源
# -v:详细信息
# -x:数据量单位转换(转为KB 、MB等)
# -L:列出所有规则
# --line:列出行号

显示内容:
        num --- 规则编号(行号)
        pkts --- 数据包的数量
        bytes --- 数据包的字节数
        target --- 动作(放行、拒绝)
        port --- 端口号

        案例2 --- 清空规则  

[root@localhost ~]# iptables -F     # 清空规则
[root@localhost ~]# iptables -nvxL --line    # 查看

[root@localhost ~]# systemctl restart iptables    # 重启服务
[root@localhost ~]# iptables -nvxL --line    # 再次查看,发现恢复原样注意:规则变动需要保存设置

[root@localhost ~]# iptables -F 
[root@localhost ~]# service iptables save      # 保存设置
[root@localhost ~]# systemctl restart iptables
[root@localhost ~]# iptables -nvxL --line

        案例3 --- 搭建web服务器,设置任何人能通过80端口访问http

[root@localhost ~]# yum install httpd -y
[root@localhost ~]# mkdir  /sxhkt
[root@localhost ~]# cd /sxhkt
[root@localhost sxhkt]# vim index.html
Welcome to linux

[root@localhost sxhkt]# vim /etc/httpd/conf/httpd.conf    # 编辑配置文件,修改参数
DocumentRoot "/sxhkt"<Directory "/sxhkt">[root@localhost sxhkt]# systemctl start httpd

[root@localhost sxhkt]# iptables  -A  INPUT  -p  tcp  --dport  80  -j  ACCEPT
[root@localhost sxhkt]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@localhost sxhkt]# systemctl restart iptables
[root@localhost sxhkt]# iptables -nvxL --line

        案例4 --- 禁止所有人使用ssh进行远程登录

[root@localhost sxhkt]# iptables -A INPUT -p tcp --dport 22 -j REJECT 
[root@localhost sxhkt]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@localhost sxhkt]# systemctl restart iptables.service 
[root@localhost sxhkt]# iptables -nL

firewalld

概述

定义

        irewalld(Dynamic Firewall Manager of Linux systems,Linux 系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,从RHEL 7开始,用firewalld服务替代了iptables服务

        RHEL 9采用firewalld管理netfilter子系统,默认情况,firewalld则是交由内核层面的nftables包过滤框架来处理

firewalld特点

        firewalld可以动态修改单条规则,不需要像iptables那样,修改规则后必须全部刷新才可生效

        firewalld默认动作是拒绝,则每个服务都需要去设置才能放行,而iptables里默认是每个服务是允许,需要拒绝的才去限制

        iptables防火墙类型为静态防火墙,firewalld 防火墙类型为动态防火墙

        firewalld和iptables一样自身并不具备防火墙功能,它们的作用都是用于维护规则,而真正使用规则干活的是内核防火墙模块

        firewalld 加入了区域(zone)概念

区域 zone

作用

        firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone),然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域,每个区域都定义了自己打开或者关闭的端口和服务列表

        区域(zone)本质为firewalld 预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换

例:有一台笔记本电脑,每天都要在公司、咖啡厅和家里使用

        这三者的安全性按照由高到低的顺序是:家庭、公司办公室、咖啡厅。

        若希望指定如下防火墙策略规则:在家中允许访问所有服务;在公司办公室内仅允许访问文件共享服务;在咖啡厅仅允许上网浏览。

        以往,我们需要频繁地手动设置防火墙策略规则,而现在只需要预设好区域集合,然后只需轻点鼠标就可以自动切换了,从而极大地提升了防火墙策略的应用效率

分析

        firewalld的一个zone就是一个可信等级,一个等级对应一套过滤规则(规则集合)

        数据包必须要经过某个zone才能入站或出站

        每个zone都有一个处理行为(default、ACCEPT、REJECT、DROP)

        firewalld的zone根据信任级别分成9个默认zone:

区域默认策略规则
trusted(信任区域)允许所有的传入流量
home (家庭区域)允许与SSH、MDNS(多播DNS)、IPP客户端、samba-客户端、DHCPv6客户端、cockpit(服务器管理工具)服务匹配的流量传入,其余拒绝
internal (内部区域)默认值时与homel区域相同
work(工作区域)允许 与SSH、DHCPv6客户端、cockpit服务匹配的流量传入,其余拒绝、
public (公共区域)允许与SSH或DHCPv6客户端、cockpit服务匹配的流量传入,其余拒绝 (是默认区域)
external(外部区域)允许与SSH服务匹配的流量传入,其余拒绝
dmz (隔离区域)也称为非军事区域,内外网络之间增加的一层网络,起到缓冲作用,允许与SSH服务匹配的流量传入,其余拒绝
block (阻塞区域)拒绝所有传入流量,返回icmp-host-prohibited消息
drop (丢去区域)丢弃所有传入流量,且没有任何回复,类似DROP

        firewalld的配置文件有两个主要的目录/usr/lib/firewalld/zones(系统配置文件,尽量不要修改)和/etc/firewalld/zones(用户配置文件,可以自行修改),每个zone单独对应一个xml配置文件,文件名为<zone名称>.xml

[root@localhost ~]# cd /usr/lib/firewalld/zones/
[root@localhost zones]# ls[root@localhost zones]# cd /etc/firewalld/zones/
[root@localhost zones]# ls

        用法 --- 把可信任的IP地址添加到trusted区域,把不可信任的IP地址添加到block区域,把要公开的网络服务添加到public区域,所以常用区域为:trusted、block、public

zone文件中的过滤规则

过滤规则优先级:

        source(最高)

        interface(次之)

        默认zone(最低)

规则:

规则作用
scource源IP地址过滤(常用)
interface网卡过滤
service服务名(实际是关联端口)过滤
port端口过滤
icmp-blockICMP报文过滤
masqueradeIP地址伪装
forward-port端口转发过滤
rule自定义规则

firewall-cmd可视化界面工具

安装

[root@localhost ~]# systemctl start firewalld.service     # 启用
[root@localhost ~]# systemctl enable firewalld.service     # 开机启动[root@localhost ~]# yum install firewall-config -y     # 安装图形化界面

使用

# 虚拟机中执行,不要在xshell执行[redhat@localhost ~]$ firewall-config 

firewall-cmd命令行工具

firewalld命令生效模式

        runtime模式 --- 运行时模式,立即生效,重启失效

        permanent模式 --- 永久模式,重启生效

管理命令

[redhat@localhost ~]# systemctl  start    firewalld
[redhat@localhost ~]# systemctl  enable   firewalld
[redhat@localhost ~]# systemctl  status   firewalld
[redhat@localhost ~]# systemctl  stop     firewalld
[redhat@localhost ~]# systemctl  disable  firewalld

设置命令:firewall-cmd 参数

参数作用
--get-default-zone查询默认的区域名称
--set-default-zone=<区域名称>设置默认的区域,使其永久生效
--get-zones显示可用的区域
--get-services显示预先定义的服务
--get-active-zones显示当前正在使用的区域与网卡名称
--add-source=将源自此 IP 或子网的流量导向指定的区域
--remove-source=不再将源自此 IP 或子网的流量导向某个指定区域
--add-interface=<网卡名称>将源自该网卡的所有流量都导向某个指定区域
--change-interface=<网卡名称>将某个网卡与区域进行关联
--list-all显示当前区域的网卡配置参数、资源、端口以及服务等信息
--list-all-zones显示所有区域的网卡配置参数、资源、端口以及服务等信息
--add-service=<服务名>设置默认区域允许该服务的流量
--add-port=<端口号/协议>设置默认区域允许该端口的流量
--remove-service=<服务名>设置默认区域不再允许该服务的流量
--remove-port=<端口号/协议>设置默认区域不再

案例

        案例1 -- 基本命令

[root@localhost ~]# firewall-cmd --version 
[root@localhost ~]# firewall-cmd --help 
[root@localhost ~]# firewall-cmd --get-services     # 查询支持的协议及服务
[root@localhost ~]# firewall-cmd --list-all    # 查看防火墙中规则

        案例2 --- zone区域设置

[root@localhost ~]# firewall-cmd --get-zones # 查看可用的区域 [root@localhost ~]# firewall-cmd --get-default-zone # 查看当前默认区域[root@localhost ~]# firewall-cmd --set-default-zone=trusted # 设置默认区域为信任区域[root@localhost ~]# firewall-cmd --get-default-zone [root@localhost ~]# firewall-cmd --set-default-zone=public  设置为public区域[root@localhost ~]# firewall-cmd --get-default-zone 

        案例3 --- 区域中添加规则,放行http

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# firewall-cmd --get-default-zone  # 查看工作的区域
[root@localhost ~]# firewall-cmd --list-all # 查看防火墙规则
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=http # 添加放行服务
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp # 添加放行端口
success
[root@localhost ~]# firewall-cmd --reload # 重置
success
[root@localhost ~]# firewall-cmd --list-all# --permanent表示永久生效,重启后不会失效
# 语法:firewall-cmd  --permanent --zone=public  --add-service=服务名firewall-cmd  --permanent --zone=public  --add-port=端口号/传输协议

        例4 --- 禁止192.168.48.130 网段的地址进行ping

        firewalld 富规则 --- 用于更细致、更详细的防火墙策略配置,它可以针对系统服务、端口号、源地址和目标地址等诸多信息进行更有正对性的策略配置

注意:

        富规则优先级最高

#整体格式
[root@localhost ~]# firewall-cmd --permanent --add-rich-rule='rich rule'如:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="源IP" service name="http"   reject'

注意:

        书写时很容易出错,所以建议在文件编辑器修改好之后再粘贴到shell终端窗口

        可以通过输入 \ 换行书写

[root@localhost ~]# firewall-cmd  --permanent --add-rich-rule='rule family="ipv4"  source  address="192.168.149.130"  protocol  value="icmp"  reject'[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-all

        测试

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023 年高教社杯全国大学生数学建模竞赛题目 A 题 定日镜场的优化设计

A 题 定日镜场的优化设计 构建以新能源为主体的新型电力系统&#xff0c;是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。 定日镜是塔式太阳能光热发电站&#xff08;以下简称塔式电站&#xff09;收集太阳能的基…

SpringBoot 拦截org.thymeleaf.exceptions.TemplateInputException异常

SpringBoot 拦截thymeleaf异常 org.thymeleaf.exceptions.TemplateInputException异常 org.thymeleaf.exceptions.TemplateProcessingE xception: Could not parse as each: "message : xxx " (template: “xxxx” - line xx, col xx) thymeleaf异常复现 你是故意的…

ubuntu上ffmpeg使用framebuffer显示video

这个主题是想验证使用fbdev(Linux framebuffer device&#xff09;&#xff0c;将video直接显示到Linux framebuffer上&#xff0c;在FFmpeg中对应的FFOutputFormat 就是ff_fbdev_muxer。 const FFOutputFormat ff_fbdev_muxer {.p.name "fbdev",.p.long_…

YMatrix 5.0 与天翼云完成产品兼容性认证

近日&#xff0c;北京四维纵横数据技术有限公司与天翼云宣布完成产品兼容性认证。经过双方严格的测试验证&#xff0c;超融合数据库 YMatrix 5.0 与天翼云兼容性良好&#xff0c;可基于天翼云稳定运行。 数据库系统作为基础软件的核心&#xff0c;自主可控势在必行。在此背景下…

OpenCV(十六):高斯图像金字塔

目录 1.高斯图像金字塔原理 2.高斯图像金字塔实现 1.高斯图像金字塔原理 高斯图像金字塔是一种用于多尺度图像表示和处理的重要技术。它通过对图像进行多次高斯模糊和下采样操作来生成不同分辨率的图像层级&#xff0c;每个层级都是原始图像的模糊和降采样版本。 以下是高斯…

github网站打不开,hosts文件配置

首先获取github官网的ip地址&#xff0c; 打开cmd&#xff0c;输入ping github.com 配置&#xff1a; #github 140.82.114.4 github.com 199.232.69.194 github.global.ssl.fastly.net 185.199.108.153 assets-cdn.github.com 185.199.110.153 assets-cdn.github.com 185.199…

Linux与shell命令行学习

文章目录 走进shell基本的bash shell命令2.1 遍历目录 cd2.2 查看文件和目录列表 ls2.3 创建文件 touch2.4 复制文件 cp2.5 自动补全 tab2.6 链接文件 ln2.7 文件重命名 mv2.8 删除文件 rm2.9 创建目录 mkdir2.10 删除目录 rmdir2.11 查看文件类型 file2.12 查看整个文件 cat、…

23个react常见问题

1、setState 是异步还是同步&#xff1f; 合成事件中是异步 钩子函数中的是异步 原生事件中是同步 setTimeout中是同步 相关链接&#xff1a;你真的理解setState吗&#xff1f;&#xff1a; 2、聊聊 react16.4 的生命周期 图片 相关连接&#xff1a;React 生命周期 我对 Reac…

LeetCode(力扣)216. 组合总和 IIIPython

LeetCode216. 组合总和 III 题目链接代码 题目链接 https://leetcode.cn/problems/combination-sum-iii/ 代码 class Solution:def combinationSum3(self, k: int, n: int) -> List[List[int]]:result[]self.backtracking(n, k, 0, 1, [], result)return resultdef back…

PCL入门(三):矩阵变换实现平移和旋转

目录 1. pcl中的矩阵变换是什么2. 举例&#xff1a;如何做矩阵变换 1. pcl中的矩阵变换是什么 通过激光传感器等设备获得的3d点云在拼接成更大场景时&#xff0c;需要对点云数据进行旋转和平移操作。而旋转和平移操作&#xff0c;就可以通过矩阵变换来实现。 点的表示 对于点…

php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法非常简单

php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法&#xff0c;主要使用到了 php 的时间函数 mktime。下面首先还是以示例说明如何使用 mktime 获取今日、昨日、上周、本月的起始时间戳和结束时间戳&#xff0c;然后在介绍一下 mktime 函数作用和用法。非常简单哦…

使用ChatGLMTokenizer处理json格式数据

我下载了一些中文wikipedia数据&#xff0c;准备采用ChatGLMTokenizer对齐进行清洗&#xff0c;整理为预训练语料。 import numpy as np import json from tqdm import tqdm from chatglm_tokenizer.tokenization_chatglm import ChatGLMTokenizertokenizer ChatGLMTokenizer…