防火墙概述及实战
目录
前言
一、概述
(一)、防火墙分类
(二)、防火墙性能
(三)、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客户管理软件能为出海…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
