squid的基本代理
一、Squid代理服务器的概述
squid 作为一款服务器代理工具,可以缓存网页对象,减少重复请求,从而达到加快网页访问速度,隐藏客户机真实IP,更为安全。
Squid主要提供缓存加速、应用层过滤控制的功能
1、squid代理的工作机制:
• 代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址
• 将获得的网页数据(静态 web元素)保存到缓存中并发给客户机,以便下次请求相同的数据时快速响应
当我们客户机通过squid代理去访问web页面时,指定的代理服务器会先检查自己的缓存,若是缓存中有我们客户机需要的页面,那么squid服务器将直接把缓存中的页面内容返回给客户机
如果缓存中没有客户端请求的页面,那么squid代理服务器就会向internet发送访问请求,获得返回的web页面后,将网页的数据保存到缓存中并发送给客户机。
由于客户机的web访问请求实际上是squid代理服务器来代替完成的,所以隐藏了用户的真实IP地址,从而起到一定的保护作用。
另一方面,squid也可以针对要访问的目标、客户机的地址、访问的时间段进行过滤控制。
2、squid代理的基本类型
① 传统代理:适用于internet,需在客户机指定代理服务器的地址和端口
② 透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将web访问重定向给代理服务器处理
③ 反向代理:如果Squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的web服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存(静态)在本地,供下一个请求者使用
根据实现的方式不同,基本可以分为传统代理和透明代理两种方式:
传统代理:也就是普通的代理服务,需要我们客户端在浏览器、聊天工具等一些程序中设置代理服务器的地址和端口,然后才能使用代理来访问网络,这种方式相比较而言比较麻烦,因为客户机还需手动指定代理服务器,所以一般用于Internet环境。
透明代理:与传统代理实现的功能是一样的,区别在于客户机不需要手动指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将web访问重定向,实际上仍然交给代理服务器来处理,重定向的过程完全是由squid服务器进行的,所以对于客户机来说,甚至不知道自己使用了squid代理服务,因此呢,我们称之为透明模式。
透明代理多用于局域网环境,如在Linux网关中启用透明代理后,局域网主机无须进行额外设置就能享受更好的上网速度。
3、squid代理的工作模式图解
3.1、传统模式:
此类工作模式为三种模式中最简单的构成,对客户端配置较不友好,主要功能为正向代理,加速内网用户的访问速度,减少出口流量。
(如果搭建公用的代理服务器,用这样方式,需要用户进入其本机的网络设置中,设置搭建了squid服务器的IP和端口)
3.2、透明模式:
此类工作模式配置较为复杂,同样也是实现正向代理需要借助防火墙对端口进行重定向操作。但是对于客户端来说配置较为友好无需进行任何配置即可使用代理功能,主要功能为加速内网用户的访问速度,减少出口流量。
(如果搭建内网访问外网的代理服务器,建议使用这种,无需到客户端设置代理服务器的IP和端口,自动实现squid代理)
3.3、反向代理模式:
反向代理模式位于本地WEB服务器和公网之间,处理公网用户发起的请求,并代理至内网服务中,有效减轻后端真是服务器的压力,增加服务器的并发处理能力
4、使用squid代理的好处
• 提高web访问速度
• 隐藏客户机的真实IP地址
二、Squid代理服务器的编译安装及运行
1、Squid代理服务器的编译安装及运行的操作步骤
首先关闭防火墙和SElinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
1.1、编译安装Squid
#安装依赖环境
yum -y install gcc gcc-c++ make
#上传软件包squid-3.5.27. tar到/opt目录下
cd /opt
#解压
tar zxvf squid-3.5.27.tar.gz
#配置相关模块
cd squid-3.5.27/
./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex# 编译安装
make && make install-----------------------------------------------
####_上述脚本解释###./configure --prefix=/usr/local/squid
##安装目录
--sysconfdir=/etc/
##单独将配置文件修改到/etc目录下
-- enable-arp-acl
##可在ACL中设置通过MAC地址进行管理,防止IP欺骗
--enable-1inux-netfilter
##使用内核过滤
--enable-linux-tproxy
##支持透明模式
--enable-async-io=100
##异步I/O,提升储存性能,值可修改
--enable-err-language="Simplify_Chinese"
##错误信息的显示语言
--enable-underscore
##允许URL中有下划线
-enable-poll
##使用Poll () 模式,提升性能
--enable-gnuregex
##使用GNU正则表达式
ln -s /usr/local/squid/sbin/* /usr/local/sbin
##创建链接文件,优化路径
useradd -M -s /sbin/nologin squid
###创建程序用户、组
chown -R squid:squid /usr/local/squid/var/
##改变目录属主,此目录用来存放缓存文件
1.2、修改Squid的配置文件
vim /etc/squid.conf
......
-----56行--插入------
http_access allow all #放在http_access deny all 之前,允许任意客户机使用代理服务,控制规则自上而下匹配
http_access deny all
http_port 3128 #用来指定代理服务监听的地址和端口(默认的端口号为3128)
-----61行--插入------
cache_effective_user squid #添加,指定程序用户,用来设置初始化、运行时缓存的账号,否则启动不成功
cache_effective_group squid #添加,指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid #指定缓存文件目录
1.3 、Squid 的运行控制
#检查配置文件语法是否正确
squid -k parse#启动Squid, 第一次启动Squid服务时,会自动初始化缓存目录
squid -z #-z选项用来初始化缓存目录
squid #启动squid 服务netstat -anpt | grep "squid"
1.4、创建 Squid 服务脚本
vim /etc/init.d/squid
#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"case "$1" instart)netstat -natp | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "squid is running"elseecho "正在启动 squid..."$CMDfi;;stop)$CMD -k kill &> /dev/nullrm -rf $PID &> /dev/null;;status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -natp | grep squidelseecho "squid is not running"fi;;restart)$0 stop &> /dev/nullecho "正在关闭 squid..."$0 start &> /dev/nullecho "正在启动 squid...";;reload)$CMD -k reconfigure;;check)$CMD -k parse;;*)echo "用法:$0{start|stop|status|reload|check|restart}";;
esac
#2345是默认自启动级别,如是 - 代表任何级别都不自启动; 90是启动优先级,25是停止优先级, 优先级范围是0一100,数字越大,优先级越低。
chmod +x /etc/init.d/squid
chkconfig --add squid
chkconfig --level 35 squid on
三、搭建传统代理
1、搭建传统代理的操作步骤
环境准备
Squid 代理服务器:192.168.2.22
web服务器: 192.168.2.66
win10客户端: 192.168.2.10
1.1 修改squid的配置文件
vim /etc/squid.conf
......
http_access allow all
http_access deny all
http_port 3128
cache_effective_user squid
cache_effective_group squid
---63行,插入----
cache_mem 64 MB
#指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB
#允许用户下载的最大文件大小,以字节为单位,当下载超过指定大小的Web对象时,浏览器的报错页面中会出现“请求或访问太大”的提示默认设置0表示不进行限制
maximum_object_size 4096 KB
#允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户
1.2 重启服务
service squid restart
systemctl restart squid
1.3 生产环境中还需要修改防火墙规则
iptables -F
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
iptables -nL INPUT
1.4 web服务器安装web服务(httpd或者nginx)
systemctl stop firewalld.service
setenforce 0
yum -y install httpd
systemctl start httpd
netstat -natp | grep 80
1.5 修改win10客户端,添加代理
打开浏览器工具-->Internet选项-->连接 -->局域网设置-->开启代理服务器 (地址: Squid服务器IP地址,端口: 3128) 清除缓存后使用浏览器访问http://192.168.2.66(web服务器地址)
1.6 在win10客户端访问web服务器进行验证
#查看Squid访问日志的新增记录
tail -f /usr/local/squid/var/logs/access.log
#查看Web访问日志的新增记录
tail -f /var/log/httpd/access_log
在浏览器输入Web服务器IP地址访问,查看Web服务器访问日志,显示的是由代理服务器替客户机在访问。
2、实例操作:搭建传统代理
2.1 修改squid的配置文件
2.2 重启服务
2.3 生产环境中还需要修改防火墙规则
2.4 web服务器安装web服务(httpd或者nginx)
2.5 修改win10客户端,添加代理
2.6 在win10客户端访问web服务器进行验证
四、搭建透明代理
1、搭建透明代理的操作步骤
环境准备:
squid服务器 :双网卡 ens33:192.168.2.22,ens36:12.0.0.1
web服务器:12.0.0.18(网关为squid代理服务器的ens36)
Win10客户端:192.168.229.200(网关为squid代理服务器的ens33)
1.1 Squid服务器:双网卡
内网ens33: 192.168.2.22 外网ens36: 12.0.0.1
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36 #修改IP地址,并注释或者删除DNS与网关
systemctl restart network
1.2 修改squid配置文件
vim /etc/squid.conf
http_access allow all
http_access deny all
--60行--修改添加提供内网服务的IP地址,和支持透明代理选项transparent
http_port 192.168.229.60:3128 transparentsystemctl restart squid
1.3 squid服务器添加路由转发和iptables规则
#开启路由转发,实现本机中不同网段的地址转发
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
<br>#修改防火墙规则
iptables -F
iptables -t nat -F
# 添加防火墙规则(将来源为229网段:80/443端口的流量重定向到3128端口)
iptables -t nat -I PREROUTING -i ens33 -s 192.168.229.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 #用于转发Http协议
iptables -t nat -I PREROUTING -i ens33 -s 192.168.229.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 #用于转发https协议
#如果要进行重启,则需要配置以下规则
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
1.4 web服务器
修改IP地址为12.0.0.18,并设置网关为12.0.0.1
并开启httpd服务,之前已安装该服务
vim /etc/sysconfig/network-scripts/ifcfg-ens33cat /etc/sysconfig/network-scripts/ifcfg-ens33TYPE=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="4ff14eea-f777-4bc2-b50b-7179db6ba998"
DEVICE=ens33
ONBOOT=yes
IPADDR=12.0.0.18
NETMASK=255.255.255.0
GATEWAY=12.0.0.1
#DNS1=192.168.229.2systemctl restart networksystemctl restart httpd.service
1.5.客户端关闭代理并访问web服务器
添加网关,网关为squid服务器的ens33
查看Web1访问日志的新增记录
tail -f /var/log/httpd/access_log
2、实例操作:搭建透明代理
2.1 Squid服务器:双网卡
2.2 修改squid配置文件
2.3 squid服务器添加路由转发和iptables规则
2.4 web服务器
2.5 客户端关闭代理并访问web服务器
五、ACL访问控制
1、ACL访问控制概述
1.1、ACL访问控制列表的概念
ACL(Access Control List)访问控制列表,主要用于过滤网络中的流量,是控制访问的一种技术手段。网络设备为了过滤报文,需要配置一系列的匹配条件对报文进行分类,应用在端口上,根据预先设定的策略,对特定端口的流量起到控制作用。
访问控制列表(ACL)由一组规则组成,在规则中定义允许或拒绝通过路由器的条件
利用ACL可以对经过路由器的数据包按照设定的规则进行过滤,使数据包有选择的通过路由器,起到防火墙的作用。
ACL一般只在以下路由器上配置:
- 内部网和外部网的边界路由器。
- 两个功能网络交界的路由器。
1.2、在配置文件squid.conf中,ACL访问控制的步骤
通过以下两个步骤来实现:
- 使用acl配置项定义需要控制的条件
- 通过http_access配 置项对已定义的列表做“允许"或“拒绝”访问的控制
1.3、定义访问控制列表
格式: acl 列表名称 列表类型 列表内容
• 列表名称: 名称自定义,相当于给acl起个名字
• 列表类型: 必须使用squid预定义的值,对应不同类别的控制条件
• 列表内容: 是要控制的具体对象,不同类型的列表所对应的内容也不一样,可以有多个值(以空格为分
隔,为“或"的关系)
1.4 ACL访问控制方式
根据源地址、目标URL、文件类型等定义列表
acl 列表名称 列表类型 列表内容…
针对已定义的acl列表进行限制
http_access allow或deny列表名称…
1.5 ACL规则优先级
一个用户访问代理服务器时,Squid会顺序匹配Squid中定义的所有规则列表,一旦匹配成功,立即停止匹配
所有规则都不匹配时,Squid会使用与最后一条相反的规则
1.6 常用的ACL列表类型
src →>源地址
dst >自标地址
port→>端口
dstdomain>目标域
time →>访问时间
maxconn →最大并发连接
ourl_regex→目标URL地址
Urlpath_regex→整个目标URL路径
2、设置ACL访问控制的步骤
环境准备
Squid 代理服务器:192.168.2.22
web服务器: 192.168.2.66
win10客户端: 192.168.2.10
使用传统代理方式进行设置ACL访问控制(传统代理的设置见上文)
2.1 定义访问控制列表
方法一:
vim /etc/squid.conf
......
acl localhost src 192.168.2.100/32 #源地址为192.168.2.100
acl MYLAN src 192.168.2.0/24 #客户机网段
acl destinationhost dst 192.168.2.66/32 #目标地址为192.168.2.66
acl MC20 maxconn 20 #最大并发连接20
acl PORT port 21 #目标端口21
acl DMBLOCK dstdomain .qq.com #目标域,匹配域内所有站点
acl BURL url_regex -i ^rtsp:// ^emule:// #以rtsp://.emule://开头的URL,-i表示忽略大小写
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$ #以.mp3、.mp4、.rmvb结尾的URL路径
acl WORKTIME time MTWHF 08:30-17:30 #时间为周一--至周五8:30~17:30,"MTWHF"为每个星期的英文首字母第一条插入:
http_access deny localhost
方法二:
#启动对象列表管理
mkdir /etc/squid
vim /etc/squid/dest.list
192.168.2.22 #Squid服务器IP
192.168.200.0/24 #任意需要的网段vim /etc/ squid.conf
.......
acl destinationhost dst "/etc/squid/dest.list" #调用指定文件中的列表内容
http access deny(或allow) destinationhost #注意,如果是拒绝列表,需要放在http_access allow all前面systemctl restart squid
2.2. WEB服务器上安装httpd服务
yum install -y httpd
systemctl start httpd
2.3 Client客户上测试
浏览器中输入192.168.2.66查看web是否被拒绝
六、Squid日志分析
sarg ( Squid Analysis Report Generator),是一款squid日志分析工具,采用HTML格式,详细列出每一位用户访问Internet的站点信息、时间占用信息、排名、连接次数、访问量等
1、实现Squid日志分析的步骤
1.1 安装图像处理软件包
yum install -y gd gd-devel pcre-devel
mkdir /usr/local/sarg
1.2 将zxvf sarg-2.3.7. tar.gz压缩包上传到/opt目录下,解压并配置相关模块,编译安装
tar zxvf sarg-2.3.7.tar.gz -C /opt/cd /opt/sarg-2.3.7
./configure --prefix=/usr/local/sarg \ #指定安装路径
--sysconfdir=/etc/sarg \ #配置文件目录
--enable-extraprotection #额外安全防护-----------------------------------------------------------------------------------------------
./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection
--------------------------------------------------------------------------------------------------make && make install
1.3 修改sarg配置文件
vim /etc/sarg/sarg.conf
--7行--取消注释
access_log /usr/local/squid/var/logs/access.1og #指定访问日志文件
--25行--取消注释
title "Squid User Access Reports" #网页标题
-- 120行--取消注释,修改
output_dir /var/www/html/squid-reports #报告输出目录
--178行--取消注释
user_ip no #使用用户名显示
--184行--取消注释,修改
topuser_sort_field connect reverse #top排序中,指定连接次数采用降序排列,升序是normal
-- 190行--取消注释,修改
user_sort_field connect reverse #对于用户访问记录,连接次数按降序排序
--206行--取消注释,修改
exclude_hosts /usr/local/sarg/noreport #指定不计入排序的站点列表的文件
--257行--取消注释
overwrite_report no #同名同日期的日志是否覆盖
--289行--取消注释,修改
mail_utility mailq.postfix #发送邮件报告命令
--434行--取消注释,修改
charset UTF-8 #指定字符集UTF-8
--518行--取消注释
weekdavs 0-6 #top排行的星期周期
--525行--取消注释
hours 0-23 #top排行的时间周期
--633行--取消注释
www_document_root /var/www/html #指定网页根目录
1.4 添加不计入站点文件,添加的域名将不被显示在排序中
touch /usr/local/sarg/noreport
ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
sarg --help #获取帮助#运行
sarg #启动一次记录
1.5 验证
yum install httpd -y
systemctl start httpd
在squid服务器上使用浏览器访问http://192.168.2.22/squid-reports, 查看sarg报告网页
date -s
1.6 添加计划任务,执行每天生成报告
vim /usr/local/sarg/report.sh
#/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y)
/usr/local/sarg/bin/sarg -l /usr/1ocal/squid/var/logs/access.log -o /var/www/html/sarg
-z -d $YESTERDAY-$TODAY &> /dev/null
exit 0chmod +x /usr/local/sarg/report.shcrontab -e
0 0 * * * /usr/1ocal/sarg/report.sh
2、实例操作:实现Squid日志分析
七.反向代理
1、squid反向代理的概述
如果Squid反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;
否则反向代理服务器将向后台的Web服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地供下一个请求者使用
工作机制:
• 缓存网页对象,减少重复请求
• 将互联网请求轮询或按权重分配到内网web服务器
• 代理用户请求,避免用户直接访问Web服务器,提高安全
2、squid反向代理的操作步骤
环境准备
Squid 代理服务器:192.168.2.22
web1服务器: 192.168.2.66
web2服务器: 192.168.2.99
win10客户端: 192.168.2.10
2.1本地关闭httpd
systemctl stop httpd
2.2 清空防火墙规则,并放空3128端口
iptables -F
iptables -t nat -F
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
2.3 .修改squid配置文件
vim /etc/ squid.conf
60行--修改,插入-------
http_port 192.168.2.22:80 accel vhost vport
cache_peer 192.168.2.66 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 192.168.2.99 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.xkq.com #表示对www.xkq.com的请求,squid向192.168.2.66和192.168.2.99的80端口发出请求
####关键字解释如下####
http_port 80 accel vhost vport
#squid从一个缓存变成了一个Web服务器反向代理加速模式,这个时候squid在80端口监听请求,同时和webserver的请求端口(vhost vport)绑定,这个时候请求到了squid, squid是不用转发请求的,而是直接要么从缓存中拿数据要么向,绑定的端口直接请求数据。
accel:反向代理加速模式
vhost:支持域名或主机名来表示代理节点
vport:支持IP和端口来表示代理节点
parent:代表为父节点,上下关系,非平级关系
80:代理内部web服务器的80端口
0:没有使用icp,表示就一台squid服务器
no-query:不做查询操作,直接获取数据
originserver:指定是源服务器
round-robin:指定squid 通过轮询方式将请求分发到其中一-台父节点
max_conn:指定最大连接数
weight:指定权重
name:设置别名
2.4 重启squid服务
systemctl stop squid
service squid reload
2.5 后端web节点服务器设置
yum install -y httpd
systemctl start httpd#节点1(web1):
echo "this is test01" >> /var/www/html/index.html
#节点2(web2):
echo "this is test02" >> /var/www/html/index.html
2.6 客户机的域名映射配置
修改C: \Windows\System32 \drivers\etc\hosts 文件
192.168.2.66 www.xkq.com
2.7 客户机的代理配置并访问测试
打开浏览器,工具-->Internet选项-->连接-->局域网设置-->开启代理服务器(地址: Squid服务器IP地址,端口:80)
浏览器访问http://www.xkq.com
3、实例操作:squid反向代理
3.1 squid服务器本地关闭httpd
3.2 清空防火墙规则,并放空3128端口
2.3 .修改squid配置文件
2.4 重启squid服务
2.5 后端web节点服务器设置
#节点1(web1):
#节点2(web2):
2.6 客户机的域名映射配置
2.7 客户机的代理配置并访问测试
Squid总结
1 . Squid作用:
缓存加速,缓存从后端web服务器获取到的,加速为了客户端访问
2 . Squid的三种模式:
① 传统模式
需要客户端指向squid代理服务器,客户端能感知到squid代理服务器的存在
修改的配置文件:squid.conf 设置 3128 端口、缓存和允许下载的大小
② 透明代理
客户端不需要配置,只要直接访问即可,服务端开启路转发,借助了防护墙规则及静态路由的方式,完成透明代理
修改的配置文件:squid.conf 设置ip和 3128 端口
需要设置iptables的流量重定向,将指定网卡网段的流量重定向到 3128 端口
③ 反向代理
作为类似于nginx服务器的反向代理功能,但自身不需要一个首页,基于ip:端口。权重的方式完成反向代理
修改的配置文件:squid.conf 设置端口为 80
服务端需要开启客户机的代理配置
3 . 对应Squid自身的管理/功能:
① ACL:主要做的是http_access(基于http协议,access访问)的允许和拒绝管理
使用 acl 配置项定义需要控制的条件;
通过 http_access 配置项对已定义的列表做“允许”或“拒 绝”访问的控制。
② Sarg:日志分析功能,可以以天的方式指定将access_log中的内容输出到一个web页面中(借助了httpd)展示出来。
相关文章:

squid的基本代理
一、Squid代理服务器的概述 squid 作为一款服务器代理工具,可以缓存网页对象,减少重复请求,从而达到加快网页访问速度,隐藏客户机真实IP,更为安全。 Squid主要提供缓存加速、应用层过滤控制的功能 1、squid代理的工…...

【从零开始写视觉SLAM】v0.1基于特征点的简单VO
v0.1版本的oSLAM实现了基于orb特征点的简单视觉里程计,通过连续两帧的rgbd数据实现相机相对位姿的估计。 #mermaid-svg-ibQfHFVHezQD5RWW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ibQfHFVHezQD5RW…...

CentOS-7 安装 MariaDB-10.8
一、安装之前删除已存在的 Mysql/MariaDB 1 查找存在的 MariaDB # 注意大小写 rpm -qa | grep MariaDB # rpm -qa 列出所有被安装的rpm package (-qa:query all) rpm -qa | grep mariadb # grep (缩写来自Globally search a Regular Expre…...

Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1
Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1 地址分配表 设备 接口 IP 地址 子网掩码 交换机端口 VLAN PC1 NIC 172.17.10.21 255.255.255.0 S2 F0/11 10 PC2 NIC 172.17.20.22 255.255.255.0 S2 F0/18 20 PC3 NIC 172.17.30.23 255.255.255.0…...

五、c++学习(加餐1:汇编基础学习)
经过前面几节课的学习,我们在一些地方都会使用汇编来分析,我们学习汇编,只是学习一些基础,主要是在我们需要深入分析语法的时候,使用汇编分析,这样会让我们更熟悉c编译器和语法。 从这节课开始,…...

iOS正确获取图片参数深入探究及CGImageRef的使用(附源码)
一 图片参数的正确获取 先拿一张图片作为测试使用 图片参数如下: 图片的尺寸为: -宽1236个像素点 -高748个像素点 -色彩空间为RGB -描述文件为彩色LCD -带有Alpha通道 请记住这几个参数,待会儿我们演示如何正确获取。 将这张图片分别放在…...
Typescript 5.0 发布:快速概览
探索最令人兴奋的功能和更新 作为一种不断发展的编程语言,TypeScript 带来了大量的改进和新功能。在本文中,我们将深入探讨 TypeScript 的最新版本 5.0,并探索其最值得关注的更新。 1. 装饰器 TypeScript 5.0 引入了一个重新设计的装饰器系…...
【图像处理 】卡尔曼滤波器原理
目录 一、说明 二、它是什么? 2.1 我们可以用卡尔曼滤波器做什么? 2.2 卡尔曼滤波器如何看待您的问题...

YOLOv5 实例分割入门
介绍 YOLOv5 目标检测模型以其出色的性能和优化的推理速度而闻名。因此,YOLOv5 实例分割模型已成为实时实例分割中最快、最准确的模型之一。 在这篇文章中,我们将回答以下关于 YOLOv5 实例分割的问题: YOLOv5检测模型做了哪些改动,得到了YOLOv5实例分割架构?使用的 Prot…...

数字城市发展下的技术趋势,你知道多少?
提到数字城市、智慧城市大家都会感觉经常在耳边听到,但是要确切说出具体的概念还是有一点难度的。具体来说:数字城市是一个集合多种技术的系统,以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用…...

linux 串口改为固定
在/etc/udev/rules.d 目录下新建定义规则的文件 1. 文件名要按规范写否则改动无效2. 规则文件必须以.rules 结尾3. 规则文件名称必须遵循 xx-name.rules 格式(xx 为数字或字母,name 为规则名称),例如 99-serial-ports.rules。4. 规…...

【SCI一区】考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

Redis缓存数据库(四)
目录 一、概述 1、Redis Sentinel 1.1、docker配置Redis Sentinel环境 2、Redis存储方案 2.1、哈希链 2.2、哈希环 3、Redis分区(Partitioning) 4、Redis面试题 一、概述 1、Redis Sentinel Redis Sentinel为Redis提供了高可用解决方案。实际上这意味着使用Sentinel…...

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

java boot项目基础配置之banner与日志配置演示 并教会你如何使用文档查看配置
上文 我们简单讲了一下 springboot 项目的配置 都是写在resources下的application.properties中 springboot 项目中 配置都写在这一个文件 可以说非常方便 不像之前 写个项目配置这里一个哪里一个 看到是非常费力 我们启动项目 这里有个图案 其实 这叫 banner 我们就用配置来…...

蓝鲸平台通过标准运维 API 安装 Agent
目录 一、背景 二、目的 三、创建安装agent流程 四、通过标准运维 API 安装 Agent 五、总结 一、背景 蓝鲸平台正常情况纳管主机需要在节点管理手工安装agent,不能达到完成自动化安装agent的效果。想通过脚本一键安装agent,而不需要在蓝鲸平台进行过…...
python 图片保存成视频
👨💻个人简介: 深度学习图像领域工作者 🎉工作总结链接:https://blog.csdn.net/qq_28949847/article/details/128552785 链接中主要是个人工作的总结,每个链接都是一些常用demo,…...
uniapp 引入 Less SCSS
✨求关注~ 😀博客:www.protaos.com 本文将介绍如何在 UniApp 中引入 Less 和 SCSS,两种流行的 CSS 预处理器。通过使用 Less 和 SCSS,你可以在 UniApp 项目中更灵活地编写样式,并享受预处理器提供的便利功能。 代码实现…...
Linux程序设计:文件操作
文件操作 系统调用 write //函数定义 #include <unistd.h> size_t write(int fildes, const void *buf, size_t nbytes); //示例程序 #include <unistd.h> #include <stdlib.h> int main() { if ((write(1, “Here is some data\n”, 18)) ! 18)write(2, …...
【自制C++深度学习推理框架】Tensor模板类的设计思路
Tensor模板类的设计思路 为什么要把Armadillo线性代数库arma::fcube封装成Tensor模板类? arma::fcube是Armadillo线性代数库中的一种数据类型,它是一个三维的float类型张量。Armadillo库是一个C科学计算库,提供了高效的线性代数和矩阵运算。…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...