Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

news2024/12/26 22:32:08

一、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" in
   start)
     netstat -natp | grep squid &> /dev/null
     if [ $? -eq 0 ]
     then
       echo "squid is running"
       else
       echo "正在启动 squid..."
       $CMD
     fi
   ;;
   stop)
     $CMD -k kill &> /dev/null
     rm -rf $PID &> /dev/null
   ;;
   status)
     [ -f $PID ] &> /dev/null
        if [ $? -eq 0 ]
          then
            netstat -natp | grep squid
          else
            echo "squid is not running"
        fi
   ;;
   restart)
      $0 stop &> /dev/null
      echo "正在关闭 squid..."
      $0 start &> /dev/null
      echo "正在启动 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

2、实例操作:Squid代理服务器的编译安装及运行

首先关闭防火墙和SElinux


  

2.1、编译安装Squid

#安装依赖环境,上传软件包squid-3.5.28. tar到/opt目录下并解压


  

#配置相关模块


 

# 编译安装


 

#创建链接文件,创建程序用户、组,并改变目录属主

2.2、修改Squid的配置文件

2.3 、Squid 的运行控制

2.4、创建 Squid 服务脚本

三、搭建传统代理

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 transparent
 
systemctl 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-ens33
 cat /etc/sysconfig/network-scripts/ifcfg-ens33
 
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="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.2
 
 systemctl restart network
 systemctl 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是否被拒绝

3、实例操作:设置ACL访问控制

2.1 定义访问控制列表

方法一:

2.1 使用客户端(192.168.2.10)访问web浏览器访问192.168.2.66

2.3 再次定义访问控制列表

方法二:

2.14 再次使用客户端(192.168.2.10)访问web浏览器访问192.168.2.66

六、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 0
 
chmod +x /usr/local/sarg/report.sh
 
crontab -e
0 0 * * * /usr/1ocal/sarg/report.sh

2、实例操作:实现Squid日志分析

1.1 安装图像处理软件包

1.2 将 sarg-2.3.7. tar.gz压缩包上传到/opt目录下,解压并配置相关模块,编译安装


  

1.3 修改sarg配置文件







 

1.4 添加不计入站点文件,添加的域名将不被显示在排序中

1.5 浏览器访问验证

在squid服务器上使用浏览器访问http://192.168.2.22/squid-reports, 查看sarg报告网页

七.反向代理

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)展示出来。

借助SARG日志分析工具实现;
编写脚本并加入计划性任务可实现每日自动生成报告。

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

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

相关文章

Android Studio SDK无法勾选安装的解决方案

问题描述 1、在初次安装好Android Studio后&#xff0c;会启动AS&#xff0c;出现经典的Unable to access Android SDK add-on list报错&#xff0c;点Cancel即可。网上的解决方法分为两种&#xff1a;&#xff08;1&#xff09;设置Proxy为教育网&#xff08;2&#xff09;在…

Linux 下安装SonarQube (版本sonarqube7.6)

公司的虚拟环境坏了&#xff0c;sonarqube需要重新安装。简单记录安装过程和遇到的问题。 相关环境信息 CentOS Linux release 7.6.1810 (Core)MySQL 5.7.30sonarqube7.6JDK 11.0.2 一 安装Sonar前需要知道 1为什么要代码清洁 软件的核心是代码。代码不仅指导业务行为&#…

陈丹琦团队最新力作:上下文学习在上下文“学到”了什么?

深度学习自然语言处理 原创作者 | 鸽鸽 这段时间in-context learning真的很火&#xff0c;陈丹琦组最新的两篇文章都是ICL相关&#xff0c;今天我们拜读其中一篇&#xff1a;丹琦的硕士生、纽约大学准博士生Jane Pan的ACL小短文。 大佬的学生会做出怎样的科研示范呢&#xff1f…

单位、家庭建筑物电气、电子设备防雷举措

前 言 在现实的学习、工作、生活中&#xff0c;有时会面对自然灾害、重特大事故、环境公害及人为破坏等突发事件&#xff0c;为了控制事故的发展&#xff0c;就不得不需要事先制定应急预案。那要怎么制定科学的应急预案呢﹖下面是小编为大家整理的单位、住宅建筑物、电子电气防…

Flink有状态计算的状态容错

状态容错 State Fault Tolerance 首先来说一说状态容错。Flink 支持有状态的计算&#xff0c;可以把数据流的结果一直维持在内存&#xff08;或 disk&#xff09;中&#xff0c;比如累加一个点击数&#xff0c;如果某一时刻计算程序挂掉了&#xff0c;如何保证下次重启的时候&…

VM600 IOCN 输入/输出接口卡

用于CPUM卡的VM600 IOCN输入/输出卡 CPUM卡的输入/输出(接口)卡一个主以太网连接器(8P8C (RJ45))&#xff0c;用于与VM600 MPSx软件和/或Modbus TCP和/或PROFINET通信进行通信一个辅助以太网连接器(8P8C (RJ45))&#xff0c;用于冗余Modbus TCP通信一个主要串行连接器(6P6C (R…

LightningChart JS 4.0.x Crack

Lightning-fast, interactive & responsive 2D & 3D JavaScript charts. Next Generation, World’s Fastest JS Charts Getting Started with LightningChart JS There’s multiple ways to get started with our JS charting library. You can install the package…

CMake Practice 学习笔记二---子目录、安装

让前面的Hello World更像一个工程&#xff1a; 为工程添加一个子目录src&#xff0c;用来放置工程源代码&#xff1b;添加一个子目录doc&#xff0c;用来反之这个工程的文档hello.txt&#xff1b;在工程目录添加文本文件COPYRIGHT&#xff0c;README&#xff1b;在工程目录添加…

Linux常见指令(3)

Linux常见指令 ⑶ date指令引入描述用法例子时间时间戳 cal指令描述用法例子 find指令描述用法例子补充which指令whereis指令 grep指令描述用法例子grep 对文件的操作grep 对目录的操作 补充 打包压缩 和 解压解包zip && unzip描述用法例子对文件的操作对目录的操作 ta…

苹果手机没有备份怎么恢复数据?数据恢复,轻松解决!

案例&#xff1a;苹果手机没有进行过iTunes和iCloud备份&#xff0c;手机还原后数据都被抹掉了&#xff0c;还能恢复数据吗&#xff1f; 【求问各位大神&#xff0c;我几天前把苹果手机的数据还原了&#xff0c;也没有提前进行过数据的备份。现在想起来之前微信上有一些重要的…

uniapp使用uView框架,后端传16位数以上时出现精度缺失的情况

1、使用 json-bigint&#xff0c;失败 2、使用 config 里的 getTask&#xff0c;失败 3、修改 dataType&#xff0c;成功 原因&#xff1a; 通过ajax请求回来的数据在response和preview两种状态显示的是不同的。response中的看到的数据格式其实是字符串&#xff08;ajax请求…

GPT-4 国内使用指南 保姆教程

gpt持续火爆&#xff0c;然鹅国内很多朋友还说不会使用&#xff0c;因此有必要科普一篇文章&#xff01; app.educlub.icu很多朋友因为各种限制无法开通#ChatGPT Plus&#xff0c;而申请OpenAI的GPT-4 API也要慢慢排队&#xff08;我的也还没下来&#xff09;。于是在这里我搜…

3 个令人惊艳的 ChatGPT 项目,开源了!

过去一周&#xff0c;AI 界又发生了天翻地覆的变化&#xff0c;其中&#xff0c;最广为人知的&#xff0c;应该是 OpenAI 正式上线 ChatGPT iOS 客户端&#xff0c;让所有人都可以更方便的在手机上与 ChatGPT 聊天。 此外&#xff0c;Stable Diffusion 母公司 Stability AI 也…

智能文档处理黑科技,拥抱更高效的数字世界

目录 0 写在前面1 为何要关注智慧文档&#xff1f;2 图像弯曲矫正3 手写板反光擦除4 版面元素检测5 文档篡改检测总结 0 写在前面 近期&#xff0c;中国图象图形学学会文档图像分析与识别专业委员会与上海合合信息科技有限公司联合打造了《文档图像智能分析与处理》高峰论坛。…

OpenCloudOS开源Linux操作系统详解

OpenCloudOS是什么&#xff1f;OpenCloudOS是Linux哪个版本&#xff1f;OpenCloudOS是哪个国家的&#xff1f;OpenCloudOS是一个国产操作系统开源社区&#xff0c;OpenCloudOS的基础库和用户态组件完全与CentOS 8兼容&#xff0c;腾讯云百科分享OpenCloudOS Linux操作系统详细介…

基于MATLAB的无人机遥感数据预处理与农林植被性状估算实践技术

为了将人工智能方法引入农业生产领域。首先在种植、养护等生产作业环节&#xff0c;逐步摆脱人力依赖&#xff1b;在施肥灌溉环节构建智慧节能系统&#xff1b;在产量预测和商品定价生产管理环节提高效能。这些智慧农业迫切需要实现的目标&#xff0c;首先要解决的问题就是多源…

第三十六章 状态管理工具与总结

Redux 是一个渐进式的状态管理库&#xff0c;它不仅仅是一个库&#xff0c;同时也是一个框架。它提供了一组用于构建复杂应用程序的工具和库&#xff0c;其中包括一些浏览器插件。 在 Chrome 和 Firefox 浏览器上&#xff0c;已经存在一些 Redux 的浏览器插件&#xff0c;例如 …

「技术分享」汽车检测移动机器人应用,科聪赋能智能数字化检测!

2021年汽车无钥匙进入系统市场价值16亿美元&#xff0c;预计到 2027 年将达到 26.8 亿美元&#xff0c;在预测期内的复合年增长率超过10%。这一光明的市场前景&#xff0c;推动相关供应商推出复杂的集成电子系统。但过去&#xff0c;汽车制造环节在智能化、数字化和过程成本等方…

企业数字化转型到底该怎么做?

企业数字化转型涉及实施技术和利用数字工具来增强业务流程、改善客户体验和推动创新。主要包括&#xff1a; 愿景和战略&#xff1a;首先明确定义数字化转型目标。确定数字技术可以对企业的业务产生最重大影响的领域&#xff0c;例如运营效率、客户参与度或产品开发。 评估当前…

【Java EE】Spring Cloud Gateway

Spring Cloud Gateway 添加Spring Cloud Gateway术语表工作流程网关的作用路由负载均衡统一处理跨域发布控制流量染色统一接口保护统一业务处理统一鉴权访问控制统一日志统一文档 网关的分类实现网关开启日志断言过滤器 参考文档 https://springdoc.cn/spring-cloud-gateway/ …