linux-运维进阶-21 Squid部署代理缓存服务

本文详细介绍了Squid代理缓存服务器的配置方法,包括正向代理、反向代理及透明代理的设置步骤。通过实验演示了如何在Linux环境下部署Squid服务,实现网络访问控制、敏感内容过滤等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux-运维进阶-21 Squid部署代理缓存服务

概念解析

Squid

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

squid分类

按照代理类型的不同,可以将Squid代理分为正向代理和反向代理。

正向代理:根据实现方式的不同,又可以分为普通代理和透明代理。
    1)普通代理:需要客户机在浏览器中指定代理服务器的地址、端口;
    2)透明代理:适用于企业的网关主机(共享接入Internet)中,客户机不需要指定代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的Web访问数据转交给代理服务程序处理;

反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

​ 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。

​ Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向Squid 发出一个申请,要Squid 代替其进行下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户,使用户觉得速度相当快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等协议并且Squid 可以自动地进行处理,可以根据自己的需要设置Squid,使之过滤掉不想要的东西。

Squid代理服务器工作在TCP/IP的应用层:

实验准备工作

实验原理

我们需要两台虚拟机,一台是win10操作系统作为客户端,另一台我们新安装一个Centos 7的虚拟机Server。配置好虚拟机Server后,将Server作为客户端win10的代理服务器,从而让win10能够上网。为了大家能完全理解虚拟机通信原理,我这里将整体上的网络结构拓扑图画出来,如下图:

​ 在之前的文章中,我们讲解过网络适配器三种模式的工作原理,本次实验设置如下:

设置

1.虚拟机Server

2.虚拟机WIN10

3.VMware Workstation Pro设置

​ 点击图中更改设置即可更改,这里放出的图是改好后的图。

通信原理

结合下图,我们的Server网卡1和WIN10 的网卡均是仅主机模式的,所以对应的,他们的ip自然是由VMnet1的虚拟DHCP服务器来分配。我们的Server网卡2是桥接模式的,相当于用一个交换机连着我们电脑的真实电脑,所以我们现在用着的物理机的ip和Server网卡2的ip均由我们的家用路由器分配。我们去到别人家里,连上别人家wifi,就会得到一个ip地址,仔细看的话就会发现家用路由器分配给我们的都是192.168.1.X的ip,在这里也是这个道理。

对了,有一次我将虚拟机网卡设置为桥接模式之后,开机查看ip发现ip竟然不是192.168.1.X了,而是一个奇怪的ip。我当时想了很久也没发现问题,难道是电脑抽风了?后来才想起来,我家断网了,我临时连着的是手机热点,真是很尴尬。

​ 如下图,由于虚拟机WIN10是仅主机模式的,所以它要访问NET外网,其数据就必须从Server那里经过。

查看本机ip(虚拟机win10)

C:\Users\zhong>ipconfig

查看Server的ip

[root@localhost ~]# ip add

由上面两张图我们得知了虚拟机WIN10的ip是192.168.23.53

虚拟机Server的ip分别是192.168.23.52和192.168.1.106

为了实验更加清晰明了,我们把分配好的ip加到拓扑图里,新的拓扑图如下:

保存快照

实验到这里,基本准备已经准备好,记住一定要给上述虚拟机Server关机保存快照,这个快照的名字就叫做“快照1”,待会我们做透明代理实验的时候恢复成这个快照再做。虚拟机WIN10就可以不用弄快照了,反正是测试用的,配置少得可怜。

配置Squid服务程序

检查虚拟机WIN10是否可以和Server通信,这里要注意的是,不同网段不能ping通,同一网段可以ping通,如下图:

检查Server是否可以连接外网和ping通虚拟机WIN10(ping需要手动用ctrl+c打断)

[root@localhost ~]# ping baidu.com
PING baidu.com (123.125.115.110) 56(84) bytes of data.
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=51 time=45.7 ms
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=2 ttl=51 time=45.8 ms
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=3 ttl=51 time=101 ms
^C
--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 45.774/64.315/101.284/26.141 ms
[root@localhost ~]# ping 192.169.23.53
PING 192.169.23.53 (192.169.23.53) 56(84) bytes of data.
^C
--- 192.169.23.53 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2001ms

[root@localhost ~]# 

	可以看到,Server可以ping通外网,但是无法ping 虚拟机WIN10的时候没有响应。然鹅,奇怪的是,虚拟机WIN10可以ping通它而它能不能ping通WIN10,其实这是系统差异导致的,对本实验没有影响,Server无法ping通虚拟机WIN10那就ping不通吧,我们往下继续做实验。实验结束后,我们再解析如何让它可以ping通虚拟机WIN10。

安装squid程序,并查看配置文件

[root@localhost ~]# yum install squid -y
[root@localhost ~]# ls /etc/squid/
cachemgr.conf          errorpage.css          mime.conf          squid.conf
cachemgr.conf.default  errorpage.css.default  mime.conf.default  squid.conf.default
[root@localhost ~]# 
[root@localhost ~]# cat /etc/squid/squid.conf

以下为其配置文件内容:
#
# Recomm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值