防火墙概述及实战
目录
前言
一、概述
(一)、防火墙分类
(二)、防火墙性能
(三)、iptables
(四)、iptables中表的概念
二、iptables规则匹配条件分类
(一)、基本匹配条件
(二)、显式匹配使用选项及功能
(三)、iptables规则
三、iptables应用
(一)、进行标记,可在LVS调度器中应用
(二)、iptables nat表应用案例
四、什么是防火墙
五、FireWalld防火墙的配置
(一)、Firewalld默认共9个zone
(二)、端口和服务名称的对应关系
总结
前言
防火墙是一种综合性的技术,涉及到计算机网络技术、密码技术、安全技术、软件技术、安全协议、网络标准化组织的安全规范以及安全操作系统等多方面。
一、概述
在计算机领域,防火墙是用于保护信息安全的设备,其会依照用户定义的规则,允许或限制数据的传输。
作用
用于保护内网安全的一种设备
依据规则进行防护
用户定义规则
允许或拒绝外部用户访问
(一)、防火墙分类
逻辑上划分 | 防火墙可以大体分为主机防火墙和网络防火墙 |
主机防火墙 | 针对于单个主机进行防护 |
网络防火墙 | 针对网络进行防护,处于网络边缘,防火墙背后是本地局域网网络防火墙主外(服务集体),主机防火墙主内(服务个人) |
物理上划分 | 防火墙可分为硬件防火墙和软件防火墙 |
硬件防火墙 | 在硬件级别实现防火墙功能,另一部分基于软件实现,其性能高,硬件成本高 |
软件防火墙 | 应用软件处理逻辑运行于通用硬件平台之上的防火墙,其性能相较于硬件防火墙低,成本较低,对于 Linux系统已自带,直接使用即可 |
硬件防火墙定义
硬件防火墙是指把具备配置数据包通过规则的软件嵌入硬件设备中,为网络提供安全防护的硬件设备。多见于网络边缘。
硬件防火墙作用(拓扑图 ups)
硬件防火墙品牌:Juniper、cisco(思科ASA) 、华为、天融信等
软件防火墙定义
软件防火墙是单独使用具备配置数据包通过规则的软件来实现数据包过滤。多见于单主机系统或个人计算机。
硬件防火墙与软件防火墙比较
硬件防火墙有独立的硬件设备,运算效率较高,价格略高,可为计算机网络提供安全防护。
软件防火墙必须部署在主机系统之上,相较于硬件防火墙运算效率低,在一定程度上会影响到主机系统性能,一般用 于单机系统或个人计算机中,不直接用于计算机网络中。
Web应用防火墙(WAF)
Web应用防火墙是对web防护(网页保护)的安全防护设备(软件),主要用于截获所有HTTP数据或仅仅满足某些规则的 会话。多见于云平台中。
(二)、防火墙性能
吞吐量
并发连接
新建连接
时延
抖动
(三)、iptables
iptables是什么?
iptables不是防火墙,是防火墙用户代理用于把用户的安全设置添加到“安全框架”中 “安全框架”是防火墙,“安全框架”的名称为netfilter。
netfilter位于内核空间中,是Linux操作系统核心层内部的一个数据包处理模块iptables是用于在用户空间对内核空间的netfilter进行操作的命令行工具。
平常我们使用iptables并不是防火墙的“服务”,而服务是由内核提供的。
iptables工作依据 规则(rules)
iptables是按照规则(rules)来办事的,而规则就是运维人员所定义的条件;规则一般定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。
规则存储在内核空间的数据包过滤表中,这些规则分别指定了源地址、目的地址,传输协议(TCP、UDP、ICMP)和服务类型(HTTP、FTP)等。
当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,比如放行(ACCEPT)、拒绝(REJECT)、 丢弃(DROP)等。
配置防火墙主要工作就是对iptables规则进行添加、修改、删除等。
iptables规则管理
iptables规则显示
netfilter/iptables功能
netfilter/iptables可简称为iptables,为Linux平台下的包过滤防火墙,是开源的,内核自带的,可以代替成本较高的 企业级硬件防火墙,能够实现如下功能:
数据包过滤,即防火墙;
数据包重定向,即转发;
网络地址转换,即可NAT。
iptables中链的概念
当客户端访问服务器端的web服务时,客户端发送访问请求报文至网卡,而tcp/ip协议栈是属于内核的一部分,所 以,客户端的请求报文会通过内核的TCP协议传输到用户空间的web服务,而客户端报文的目标地址为web服务器所 监听的套接字(ip:port)上,当web服务器响应客户端请求时,web服务所回应的响应报文的目标地址为客户端地址, 我们说过,netfilter才是真正的防火墙,属于内核的一部分,所以,我们要想让netfilter起到作用,我们就需要在内 核中设置“关口”,所以进出的数据报文都要通过这些关口,经检查,符合放行条件的准允放行,符合阻拦条件的则被 阻止,于是就出现了input和output关口,然而在iptables中我们把关口叫做“链”。
如果客户端发到本机的报文中包含的服务器地址并不是本机,而是其他服务器,此时本机就应该能够 进行转发,那么这个转发就是本机内核所支持的IP_FORWARD功能,此时我们的主机类似于路由器功能,所以我们会 看到在iptables中,所谓的关口并只有上面所提到的input及output这两个,应该还有“路由前”,“转发”,“路由后”,它们所对应的英文名称分别为“PREROUTING”,“FORWARD”,“POSTROUTING”,这就是我们说到的5链。
当我们在本地启动了防火墙功能时,数据报文需要经过以上关口,根据各报文情况,各报名经常 的“链”可能不同,如果报文目标地址是本机,则会经常input链发往本机用户空间,如果报文目标不是本机,则会直接 在内核空间中经常forward链和postrouting链转发出去。
有的时候我们也经常听到人们在称呼input为“规则链”,这又是怎么回事呢?我们知道,防火墙的作用在于对经过的数 据报文进行规则匹配,然后执行对应的“动作”,所以数据包经过这些关口时,必须匹配这个关口规则,但是关口规则 可能不止一条,可能会有很多,当我们把众多规则放在一个关口上时,所有的数据包经常都要进行匹配,那么就形成 了一个要匹配的规则链条,因此我们也把“链”称作“规则链”。
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包(主要是将数据包转发至本机其它网卡)
当数据报文经过本机时,网卡接收数据报文至缓冲区,内核读取报文ip首部,发现报文不是送到本机时(目的ip 不是本机),由内核直接送到forward链做匹配,匹配之后若符合forward的规则,再经由postrouting送往下一跳或目的主机。
PREROUTING:在进行路由选择前处理数据包,修改到达防火墙数据包的目的IP地址,用于判断目标主机。
POSTROUTING:在进行路由选择后处理数据包,修改要离开防火墙数据包的源IP地址,判断经由哪一接口送往下一跳。
iptables链管理方法(了解)
(四)、iptables中表的概念
每个“规则链”上都设置了一串规则,这样的话,我们就可以把不同的“规则链”组合成能够完成某一特定功能集合分类,而这个集合分类我们就称为表,iptables中共有5张表。security:是后加上的,定义强制访问控制规则;通常为4表。
filter: 过滤功能,确定是否放行该数据包,属于真正防火墙,内核模块:iptables_filter。
nat: 网络地址转换功能,修改数据包中的源、目标IP地址或端口;内核模块:iptable_nat。
mangle: 对数据包进行重新封装功能,为数据包设置标记;内核模块:iptable_mangle。
raw: 确定是否对数据包进行跟踪;内核模块:iptables_raw。
iptables中表链之间的关系
iptables中表的优先级:raw-mangle-nat-filter(由高至低)
二、iptables规则匹配条件分类
(一)、基本匹配条件
-p(protocal) | 指定规则协议,tcp(传输层) udp(传输层) icmp(网络层) ip(网络层) |
-s(source) | 指定数据包的源地址 |
-d(destination) | 指定目的地址 |
-i | 输入网卡接口(lo本地回环,ens33) |
-o | 输出网卡接口(ens37,ens33等) |
! | 取反 |
基本匹配的特点是:无需加载扩展模块,匹配规则生效。
拒绝icmp的访问(ACCEPT为允许)
iptables -A INPUT -p icmp -j REJECT
拒绝tcp的访问
iptables -A INPUT -p tcp -j REJECT
拒绝源地址的访问
iptables -A INPUT -s 192.168.238.131 -j REJECT
除了icmp协议可以通信(DROP为拒绝但反应较慢)
iptables -A INPUT ! -p icmp -i ens33 -j DROP
(二)、显式匹配使用选项及功能
禁止访问80端口,其他都可以
不允许别人Ping我,我可以Ping别人
iptables -A INPUT -p icmp --icmp-type 8/0 -j REJECT
多端口:multiport
禁止80和20端口访问,其他端口允许
iptables -I INPUT -p tcp -m multiport --dports 80,20 -j REJECT
多IP地址:iprange
禁止192.168.238.120~192.168.238.130IP的访问
指定访问时间范围:time(注意时区)
iptables -I INPUT -p tcp --dport 80 -m time --weekdays Tus --timestart 10:00:00 --timestop 18:00:00 -j REJECT
connlimit(了解)
连接限制,根据每个客户端IP作并发连接数量限制。
limit(了解)
报文速率限制。
state
追踪本机上的请求和响应之间的数据报文的状态。
状态有五种
NEW | 新连接请求 |
ESTABLISHED | 已建立的连接 |
INVALID | 无法识别的连接 |
RELATED | 相关联的连接,当前连接是一个新请求 |
UNTRACKED | 未追踪的连接 |
(三)、iptables规则
制定iptables规则思路
选择一张表,此表决定了数据报文处理的功能
选择一条链,此链决定了数据报文流经哪些位置
选择合适的规则,此条件决定了对数据做何种条件匹配
选择处理数据报文的动作 拒绝还是允许
制定iptables规则策略
黑名单 | 没有被拒绝的流量都可以通过,这种策略下管理员必须针对每一种新出现的攻击,制定新的规则,因此不推荐 |
白名单 | 没有被允许的流量都要拒绝,这种策略比较保守,根据需要,主机主机逐渐开放,目前一般都采用白名单策略,推荐 |
iptables规则中动作
iptables规则中的动作常称为target,也分为基本动作和扩展动作。
ACCEPT | 允许数据包通过 |
DROP | 直接丢弃数据包,不给任何回应信息 |
REJECT | 拒绝数据包通过,发送回应信息给客户端 |
SNAT | 源地址转换 |
数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,接收方认为数据包的来 源是被替换的那个IP主机,返回响应时,也以被替换的IP地址进行 | |
修改数据包源地址,当内网数据包到达防火墙后,防火墙会使用外部地址替换掉数据包的源IP地址 (目的IP地址不变),使网络内部主机能够与网络外部主机通信 | |
MASQUERADE | 伪装,类似于SNAT,适用于动态的、临时会变的ip地址上,例如:家庭使用的宽带。 用发送数据的网卡上的IP来替换源IP,对于IP地址不固定场合使用 |
DNAT | 目标地址转换 |
数据包从网卡发出时,修改数据包中的目的IP,表现为你想访问A,但因网关做了DNAT,把所有 访问A的数据包中的目的IP地址全部修改为B,实际最终访问的是B | |
改变数据包目的地址,当防火墙收到来自外网的数据包后,会将该数据包的目的IP地址进行替换 (源IP地址不变),重新转发到内网的主机 | |
REDIRECT | 在本机做端口映射 |
LOG | 在/var/log/message文件中记录日志信息,然后将数据包传递给下一条规则 |
SNAT
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth1 -j SNAT --to-source 202.12.10.100
DNAT
iptables -t nat -A PREROUTING -d 202.12.10.100 -p tcp --dport 80 -j DNAT --to- destination 192.168.10.254
路由是按照目的地址进行路由选择的,因此,DNAT是在PREROUTING链上进行的,SNAT是在数据包发出的时候进行的,因此是在POSTROUTING链上进行的。
iptables基础语法结构
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]
不指定表名时,默认表示filter表,不指定链名时,默认表示该表内所有链,除非设置规则链的默认策略,否则 需要指定匹配条件。
三、iptables应用
服务名:iptables-services(yum)
centos7系统中默认存在iptables命令,此命令仅为简单查询及操作命令,不包含配置文件,安装iptables- services后,将直接生成配置文件,便于配置保存。包含ipv4及ipv6。
保存规则:ptables-save > /etc/sysconfig/iptables(路径可自定义)
重载:iptables-restore < /etc/sysconfig/iptables
不允许通过本地回环网卡访问本机
iptables -I INPUT -i lo -j REJECT
本机无法访问本机
解决办法
(一)、进行标记,可在LVS调度器中应用
详细列表
iptables -t mangle -nL
进行标记
(二)、iptables nat表应用案例
nat表作用:导流
nat表作用位置
KVM或OpenStack中虚拟机或云主机与外部通信
Docker管理的容器与外部通信
开启路由转发功能
SNAT源地址转换、DNAT目标地址转换
案列
实验环境:
hd1:192.168.238.101、网关:192.168.238.100
hd2: 192.168.100.101
hd3: 192.168.100.100(ens33)、192.168.238.100(ens37)
注意:为了方便互相验证先在hd1和hd3上先装好httpd服务
步骤
snat
hd1
安装httpd服务,启动httpd服务
配置静态IP及网关
创建访问文件 echo hello > /var/www/html/index.html(可不创建,只是为了方便观察)
hd2
安装httpd服务,启动httpd服务
配置静态IP及网关
创建访问文件 echo OKOK > /var/www/html/index.html
hd3 添加网卡ens37,配置静态IP
开启防火墙的路由转发功能
vim /etc/sysctl.conf
sysctl -p 激活
配置防火墙的snat地址转换
iptables -t nat -A POSTROUTING -s 192.168.238.0/24 -o ens37 -j SNAT --to-source 192.168.100.100
到hd1上进行验证
dnat
hd3配置防火墙的dnat地址转换
iptables -t nat -A PREROUTING -d 192.168.100.100 -p tcp -j DNAT --to-destination 192.168.238.101
到hd2上进行验证
四、什么是防火墙
防火墙:防范一些网络攻击。有软件防火墙、硬件防火墙之分。
防火墙选择让正常请求通过,从而保证网络安全性。
Windows防火墙
传统Linux防火墙
FireWalld防火墙的概念
CentOS6中防火墙叫做iptables
CentOS7中默认使用的防火墙是firewalld
FireWalld增加了区域的概念,所谓区域是指,firewalld预先准备了几套防火墙策略的集合,类似于策略的模板,用户可以根据需求选择区域。
FireWalld属于动态防火墙,是CentOS7系统中用于对netfilter内核模块用户空间管理工具。FireWalld仅仅替代了iptables service部分,其底层还是使用iptables做为防火墙规则管理入口。
常见区域及相应策略规则
trusted | 允许所有数据包 |
home | 拒绝流入的流量,除非与流出的流量相关,允许 ssh,mdns,ippclient,amba-client,dhcpv6-client服务通过 |
internal | 等同于home |
work | 拒绝流入的流量,除非与流出的流量相关,允许ssh,ipp client,dhcpv6-client服务通过 |
public | 拒绝流入的流量,除非与流出的流量相关,允许 ssh,dhcpv6-client服务通过 |
external | 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通 过 |
dmz | 拒绝流入的流量,除非与流出的流量相关,允许ssh服务通 过 |
block | 拒绝流入的流量,除非与流出的流量相关,非法流量采取拒 绝操作 |
drop | 拒绝流入的流量,除非与流出的流量相关,非法流量采取丢 弃操作 |
运行模式 | 配置的防火墙策略立即生效,但是不写入配置文件 |
永久模式 | 配置的防火墙策略写入配置文件,但是需要reload 重新加载才能生效 |
五、FireWalld防火墙的配置
使用systemctl来管理firewalld的服务
语法:systemctl [选项] firewalld
start | 启动指定服务 |
status | 检查指定服务的运行状况 |
reload | 重新加载指定服务的配置文件(并非所有服务都支持 reload,通常使用restart) |
restart | 重启指定服务 |
stop | 停止指定服务 |
管理firewall配置
查看默认使用的区域 firewall-cmd --get-default-zone
查看所有可用区域 firewall-cmd --get-zones
列出当前使用区域配置 firewall-cmd --list-all
列出所有区域的配置 firewall-cmd --list-all-zones
在public区域,添加允许tcp协议的1024端口通过的规则
firewall-cmd --zone=public --add-port=1024/tcp
在public区域,去掉允许tcp协议的1024端口通过的规则
firewall-cmd --zone=public --remove-port=1024/tcp
在public区域,使用permanent参数,永久添加允许1024端口通过的规则
firewall-cmd --permanent --zone=public --add port=1024/tcp
(一)、Firewalld默认共9个zone
FireWalld不同区域之间的差异主要是每个区域对待数据包的默认行为不同
内部 | internal |
非军事化 | dmz |
外部 | external |
家 庭 | home |
拒 绝 | block |
默认区域 | Firewalld |
丢 弃 | drop |
信 任 | trusted |
工作区 | work |
(二)、端口和服务名称的对应关系
查看端口和服务名称的对应关系 cat /etc/services
新建规则 | --add |
删除规则 | --remove |
改变规则 | --change |
查询规则 | --query |
--add-interface=eth0 将网络接口添加到默认的区域内
--add-service=http --permanent
添加服务到区域开放列表中(注意服务的名称需要与此区域支持的服务列表中的名称一致)
--remove-interface=eth0 将网络接口在默认的区域内删除
--change-interface=eth1 改变指定的接口到其他区域
--query-masquerade 查询SNAT的状态
总结
首先要了解防火墙的一些概念再去操作要好一些,因为操作命令较长,不好背记,理解了选项的含义会更加得心应手。4表5链和iptables服务需要重点掌握。
相关文章:
防火墙概述及实战
目录 前言 一、概述 (一)、防火墙分类 (二)、防火墙性能 (三)、iptables (四)、iptables中表的概念 二、iptables规则匹配条件分类 (一)、基本匹配条…...
nginx代理故障总结
一、故障现象 今天公司的某个系统文件下载功能失败,报错network error,其他功能正常。 二、故障定位 首先我们检查了公司的网络情况,包括网络路由、防火墙策略、终端安全产品等,均未发现异常。 尝试访问http://X.X.X.X:7002端口&…...
python爬虫爬取电影数据并做可视化
思路: 1、发送请求,解析html里面的数据 2、保存到csv文件 3、数据处理 4、数据可视化 需要用到的库: import requests,csv #请求库和保存库 import pandas as pd #读取csv文件以及操作数据 from lxml import etree #解析html库 from …...
哈希及哈希表的实现
目录 一、哈希的引入 二、概念 三、哈希冲突 四、哈希函数 常见的哈希函数 1、直接定址法 2、除留余数法 五、哈希冲突的解决 1、闭散列 2、开散列 一、哈希的引入 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找…...
CLIP 基础模型:从自然语言监督中学习可转移的视觉模型
一、说明 在本文中,我们将介绍CLIP背后的论文(Contrastive Language-I mage Pre-Training)。我们将提取关键概念并分解它们以使其易于理解。此外,还对图像和数据图表进行了注释以澄清疑问。 图片来源: 论文:…...
解读性能指标TP50、TP90、TP99、TP999
TP指标说明 TP指标: 指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序, 并取出结果为:总次数*指标数对应TP指标的值,再取出排序好的时间。 TPTop Percentile,Top百分数&#…...
【无标题】mysql 截取两个,之间字符串
截取两个,之间字符串 select area,SUBSTRING_INDEX(et.area,,,1) as XZQH1,if(length(et.area)-length(replace(et.area,,,))>1,SUBSTRING_INDEX(SUBSTRING_INDEX(et.area,,,2),,,-1),NULL) AS XZQH2,if(length(et.area)-length(replace(et.area,,,))>2,SUBS…...
全局的键盘监听事件
一、设定全局键盘监听事件 放在vue 的created()或者mounted ()中,可对整个文档进行键盘事件监听。 new Vue({ created() { window.addEventListener(keydown, this.handleKeydown); }, beforeDestroy() { window.removeEventListener(keydown, this.handleK…...
Qt自定义QSlider(支持水平垂直)
实现背景: Qt本身有自己的QSlider,为什么我们还要自定义实现呢,因为Qt自带的QSlider存在一个问题,当首尾为圆角时,滑动滚动条到首尾时会出现圆角变成矩形的问题。当然如果QSS之间的margin和滑动条的圆角控制的好的话是…...
会话控制学习
文章目录 介绍cookieexpress中使用cookie获取cookie session配置区别 介绍 cookie express中使用cookie 退出登录就是删除cookie 获取cookie 添加中间键后,直接获取 session 配置 区别...
dweb-browser阅读
dweb-browser阅读 核心模块js.browser.dwebjmm.browser.dwebmwebview.browser.dwebnativeui.browser.dweb.sys.dweb plaoc插件 核心模块 js.browser.dweb 它是一个 javascript-runtime,使用的是 WebWorker 作为底层实现。它可以让您在 dweb-browser 中运行 javasc…...
ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段
ChatGPT:使用fastjson读取JSON数据问题——如何使用com.alibaba.fastjson库读取JSON数据的特定字段 有一段Json字符串: {"code": 200,"message": "success","data": {"total": "1","l…...
2、ARM处理器概论
一、ARM处理器概述 1、ARM的含义 ARM(Advanced RISC Machines)有三种含义,一个公司的名称、一类处理器的通称、一种技术 ARM公司: 成立于1990年11月,前身为Acorn计算机公司主要设计ARM系列RISC处理器内核授权ARM内…...
【Python】福利彩票复式模拟选号程序
【效果】 【注意】 逻辑是用Random模拟10000次复试彩票选号,然后给出最大可能性一组。但是模拟终究是模拟,和现实彩票结果没有任何联系,下载下来玩就是了,没人能保证模拟出中奖号码,不要投机,不要投机! 【修改】 代码很简单,如果想改成不是复式的,自行修改即可。 如…...
Pytorch 机器学习专业基础知识+神经网络搭建相关知识
文章目录 一、三种学习方式二、机器学习的一些专业术语三、模型相关知识四、常用的保留策略五、数据处理六、解决过拟合与欠拟合七、成功的衡量标准 一、三种学习方式 有监督学习: 1、分类问题 2、回归问题 3、图像分割 4、语音识别 5、语言翻译 无监督学习 1、聚类…...
torch 和paddle 的GPU版本可以放在同一个conda环境下吗
新建conda 虚拟环境,python 版本3.8.17 虚拟机,系统centos 7,内核版本Linux fastknow 3.10.0-1160.92.1.el7.x86_64 ,显卡T4,nvidia-smi ,460.32.03,对应cuda 11.2,安装cuda 11.2和cudnn,conda…...
MYBATIS-PLUS入门使用、踩坑记录
转载: mybatis-plus入门使用、踩坑记录 - 灰信网(软件开发博客聚合) 首先引入MYBATIS-PLUS依赖: SPRING BOOT项目: <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus…...
C# 静态类和sealed类(密封类)的区别
网上看到很多文章写静态类,和密封类,但是鲜有它们的对比总结,在此简单总结一下: 静态类(Static Class): 静态类不能被实例化,其成员都是静态的,可以通过类名直接访问。静…...
el-table如何实现自动缩放,提示隐藏内容
前提问题:大屏展示中某一个区域是表格内容,当放大或缩小网页大小时,表格宽度随之缩放,但表格内容未进行缩放,需要表格内容与网页大小同时进行缩放,且表头和表格内容宽度不够未显示全时,需要进行…...
CRM客户管理软件对出海企业的帮助与好处
2023我们走出了疫情的阴霾,经济下行压力大,面对内需的不足,国内企业纷纷选择出海,拓展海外业务增加企业营收。企业出海不是一件易事,有了CRM系统可以让公司事半功倍,下面就来说一说CRM客户管理软件能为出海…...
【QT--使用百度地图API显示地图并绘制路线】
QT--使用百度地图API显示地图并绘制路线 前言准备工作申请百度地图密钥(AK)安装开发环境 开发过程新建项目ui界面GPSManager类主窗口Map 效果展示 前言 先吐槽一下下,本身qt学的就不咋滴,谁想到第一件事就是让写一个上位机工具,根据CAN总线传…...
C数据结构二.练习题
一.求级数和 2.求最大子序列问题:设给定一个整数序列 ai.az..,a,(可能有负数).设计一个穷举算法,求a 的最大值。例如,对于序列 A {1,-1,1,-1,-1,1,1,1,1.1,-1,-1.1,-1,1,-1},子序列 A[5..9](1,1,1,1,1)具有最大值5 3.设有两个正整数 m 和n,编写一个算法 gcd(m,n),求它们的最大公…...
猫头虎博主第5️⃣期赠书活动:《Java官方编程手册(第12版·Java 17)套装上下册》
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...
(1)数据库 MSQ 数据库 安装 使用 以及增删改查
下载官网:MySQL :: Download MySQL Shell 常见的数据库分为: 关系型数据库, Oracle、MySQL、SQLServer、Access非关系型数据库, MongoDB、Redis、Solr、ElasticSearch、Hive、HBase 安装过程 使用过程...
什么测试自动化测试?
什么测试自动化测试? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念,广义上来讲&a…...
【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题
本周的工作结束,详述一些在项目代码中实际遇到的一些坑。 代码中遇到这样一个场景: 有个业务接口,接口返回的值是一个JSON格式的字符串,通过JSON解析的方式,解析为格式为: Map<Long, Map<String, O…...
微服务保护-授权规则/规则持久化
授权规则 基本规则 授权规则可以对调用方的来源做控制,有白名单和黑名单两种方式。 白名单:来源(origin)在白名单内的调用者允许访问 黑名单:来源(origin)在黑名单内的调用者不允许访问 点…...
练习敲代码速度
2023年9月18日,周一晚上 今晚不想学习,但又不想玩游戏,于是找了一些练习敲代码的网站来玩玩,顺便练习一下敲代码的速度 目录 参考资料个人推荐第一个 第二个第三个 参考资料 电脑打字慢,有哪些比较好的练打字软件&a…...
uni-app:实现条件判断展示图片(函数判定+三目运算)
一、多条件判断(通过函数进行图片展示) 效果 代码 在data中定义图片信息和要传递的数据信息,在src中写入函数并携带要传递的数据,通过传递的数据在函数中进行判断,并返回对应的图片信息 <template><view&…...
http概念
概念:HTTP,hyper text transfer protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 特点: 1.基于TCP协议:面向连接,安全。 2.基于请求-响应模型的:一次请求对应一…...
推广网站的方法/百度认证营销推广师
盒子不能为空的插板问题 有8个一模一样的小球,把它们放到4个不同的盒子里,每个盒子都不能为空,有几种不同的放法? 解题思路 因为要放入4个不同的盒子里,可以在小球之间插入3块隔板将它们成四份,如下图所…...
手机网站在线生成/6个好用的bt种子搜索引擎
目录一、文件目录二、实现效果三、实现3.1 跳转页面api3.2 页面组件跳转四、示例demo源码4.1 wxml4.2 wxss4.3 js一、文件目录 二、实现效果 三、实现 点击test页面中的按钮,跳转至页面other; 3.1 跳转页面api 3.1.1 navigateTo 保留当前页面&#x…...
网站建设预算表样本/外贸推广是做什么的
iredmail配置好后,尝试从一客户端的OE中发送邮件,结果报错,在mail主机中查看tail /var/log/maillog,发现如下错误信息:Oct 24 12:50:49 mail2 postfix/smtpd[9280]: connect from unknown[192.168.5.240] Oct 24 12:50…...
用ps做网站设计/中国十大广告公司排行榜
var nary this.rangeTwoPrice.sort();for (var i 0; i<this.rangeTwoPrice.length;i){if(nary[i]nary[i1]){this.$message.error(区间金额不能重复)this.ruleFormjudgebol falsereturn}else {this.ruleFormjudgebol true}}...
怎么利用360域名做网站/深圳google推广
刚开始接触vue 的webpage脚手架的时候是不是对那一堆文件夹特别懵。下面我们就来看看脚手架里面的目录都代表什么吧!首先安装好脚手架的时候目录是这样的1.node_modues --这个文件夹里面是存放下载好的依赖(模块,组件)--依赖的工具包目录2.public …...
天津培训网站建设/项目推广渠道有哪些
visionpro简单易用您可以使用jQuery样式表切换器使网站更具交互性-允许访问者从其他样式表列表中选择首选的配色方案,从而使他们的浏览体验更加个性化。 本文包含10个简单的jQuery StyleSheet切换器集合,供您尝试并实现到您的网站中。 请享用。 相关文章…...