🏡作者主页:点击!
👨💻Linux高级管理专栏:点击!
⏰️创作时间:2024年6月24日11点11分
🀄️文章质量:95分
目录
————前言————
Squid是一种高性能的代理缓存服务器,用于改善网络性能、提供缓存服务以及增强网络安全性。它在企业网络和互联网服务提供商中广泛使用,尤其适用于加速web访问、减少带宽使用和提高网络访问控制。下面是Squid代理服务器的详细介绍,包括其功能、部署和应用。
按着顺序观看效果更好
Squid功能
缓存管理:Squid能够缓存频繁访问的网页内容,从而减少对原始服务器的请求次数,降低带宽消耗并加快用户的访问速度。
访问控制:提供强大的访问控制列表(ACL)功能,可以基于IP地址、时间、URL等条件来控制用户的访问权限。
内容过滤:通过配置,可以过滤不良网站、限制访问某些类型的内容,提高网络使用的安全性。
负载均衡:支持多个上游代理的负载均衡,提升代理服务的可靠性和性能。
日志记录:详细记录用户的访问日志,方便管理员进行审计和分析。
Squid的几种模式
Squid代理服务器可以部署在多种模式下,以满足不同的网络需求。下面是对Squid三种主要模式的介绍:传统模式、透明模式和反向代理模式。
1. 传统模式
传统模式(Forward Proxy)是最常见的代理模式,客户端显式地将请求发送到Squid代理服务器,由代理服务器转发请求到目标服务器,并将响应返回给客户端。
特点:
- 客户端需要配置代理服务器的IP地址和端口。
- 主要用于缓存和访问控制。
- 常用于网络加速、带宽优化以及网络访问控制。
2. 透明模式
透明模式(Transparent Proxy)允许客户端无需配置代理设置,所有的流量通过网络设备(如路由器或防火墙)自动重定向到Squid代理服务器。
特点:
- 客户端无需配置代理服务器。
- 常用于企业网络以便无缝管理和控制网络流量。
- 配置相对复杂,需要配合网络设备(如iptables或思科设备)。
3. 反向代理模式
反向代理模式(Reverse Proxy),也称为Web加速器模式,Squid代理服务器位于客户端和Web服务器之间,客户端请求被转发到代理服务器,再由代理服务器请求实际的Web服务器。通常用于加速Web应用和负载均衡。
特点:
- 客户端请求无感知代理存在。
- 提供Web服务器的缓存和负载均衡服务。
- 常用于提高Web服务器的性能和可靠性。
本次实验讲解传统模式的代理方式
实验环境
一台服务器模拟外网服务器搭建web服务 IP地址 100.0.0.2 24
一台服务器作为squid代理服务器
两块网卡 ens33 192.168.192.111 24 ens36 100.0.0.1 24
一台win7作为客户端
实验要求 win7通过squid代理服务器来访问外网web服务
注释:以上均关闭 防火墙 selinux
外网服务器
安装httpd
安装httpd yum install -y httpd
关闭防火墙 selinux
给网页添加内容
echo smqnz > /var/www/html/index.html
网络配置
模拟外网的环境
配置编辑他的IP地址
代理服务器
首先用本地的IP地址连接Xshell 上传安装文件
网络环境
ens33 192.168.192.111
ens36 100.0.0.1
修改ens36IP地址
[root@localhost yum.repos.d]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36 vim ifcfg-ens36
安装下载的组件
[root@localhost ~]# yum install -y gcc gcc-c++
tar zxf 解压安装包
tar zxvf squid-3.5.23.tar.gz cd squid-3.5.23/
编译安装
我这边空行是因为方便大家观看 我建议你把所有选项 放到txt 文档中整理之后在copy 执行
./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-async-io=240 --enable-default-err-language=Simplify_Chinese --disable-poll --enable-epoll --enable-gnuregex make && make install 编译安装
修改系统配置以启用IP转发
vim /etc/sysctl.conf net.ipv4.ip_forward = 1
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
- 将Squid的可执行文件链接到系统的标准可执行路径中,方便使用命令运行Squid。
useradd -M -s /sbin/nologin squid
- 创建一个专门用于运行Squid服务的用户,以提高系统安全性。
chmod 777 /usr/local/squid/var/logs/
- 为Squid的日志目录设置权限,以确保Squid进程能够写入日志文件。
开启Squid服务并查看
squid 开启服务 [root@localhost squid-3.5.23]# netstat -nultp | grep squid tcp6 0 0 :::3128 :::* LISTEN 56706/(squid-1) udp 0 0 0.0.0.0:52440 0.0.0.0:* 56706/(squid-1) udp6 0 0 :::60903 :::* 56706/(squi
如图所示
看着我操作的图片
客户端
win7测试
关闭防火墙
IP地址是 192.168.192.130
将浏览器Internet属性中的链接局域网设置 代理服务器指向 192.168.192.111 的3128端口
也就是代理服务器指向你 squid服务器的 ens33的ip地址
测试
访问模拟的外网web服务器
成功显示smqnz的内容 访问成功
外网服务器查看
查看httpd的日志
可以看出是100.0.0.1 访问的 web服务器 也就是win7通过squid代理服务器访问的web服务器
实验成功
"成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"
"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"
神秘泣男子