CentOS搭建squid正向代理

squid介绍

官网地址:http://www.squid-cache.org/


Squid cache(简称为 Squid)是一个流行的自由软件(GNU 通用公共许可证)的代理服务器和 Web 缓存服务器。Squid 有广泛的用途,从作为网页服务器的前置 cache 服务器缓存相关请求来提高 Web 服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid 主要设计用于在 Unix 一类系统运行。

Squid 的发展历史相当悠久,功能也相当完善。除了 HTTP 外,对于 FTP 与 HTTPS 的支援也相当好,在 3.0 测试版中也支援了 IPv6。

Squid主要提供缓存加速、应用层过滤控制的功能。

代理的工作机制

(1)代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。

(2)将获得的网页数据(静态 Web 元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。

代理服务器的概念及其作用

代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。

缓存代理对于Web至关重要,尤其对于大型高负载Web站点。缓存可作为性能优化的一个重要手段,可以极大减轻后端服务器的负载。通常对于静态资源,即较少经常更新的资源,如图片,css或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可以减轻服务器的压力。

主要作用

(1)资源获取:代替客户端实现从原始服务器的资源获取

(2)加速访问:代理服务器可能离原始服务器更近,从而起到一定的加速作用

(3)缓存作用:代理服务器保存从原始服务器所获取的资源,从而实现客户端快速的获取

(4)隐藏真实地址:代理服务器代替客户端去获取原始服务器资源,从而隐藏客户端真实信息

squid的三种代理类型

squid软件主要有三种代理类型:

  • 正向代理:代理内部主机上网,共享上网,缓存,控制内网用户上网行为等功能(客户端需要设置代理服务器的IP和代理端口)。
  • 透明代理:客户机不需指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向给代理服务器处理。
  • 反向代理:如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 WEB 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。

正向代理分析图:
image

反向代理分析图:
image

squid安装和配置文件说明

安装软件

# yum镜像仓库里有squid的软件包
yum -y install squid

# squid配置初始化
cat >> /etc/squid/squid.conf<< EOF
cache_mem 64 MB
maximum_object_size 4 MB
maximum_object_size_in_memory 4096 KB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
EOF

# squid初始化
squid -z

# 启动squid并设置为开机启动
service squid start && systemctl enable squid

# 检查squid是否正常运行
netstat -ntlp | grep squid

# 如果防火墙开启的话,放开3128端口
firewall-cmd --zone=public --add-service=squid --permanent

软件的文件列表

/etc/squid/squid.conf           # 配置文件
/etc/rc.d/init.d/squid          # 启动脚本
/usr/sbin/squid                 # 二进制命令
/usr/share/doc/squid-3.1.10     # 手册
/var/log/squid                  # 日志目录
/var/spool/squid                # 缓存目录

配置文件说明

# cat /etc/squid/squid.conf

#####	设置监听的IP与端口号
http_port 3128

#####	额外提供给squid使用的内存大小,默认256 MB
cache_mem   64 MB   

#####	设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
maximum_object_size 4 MB   

#####	设置squid磁盘缓存最小文件
minimum_object_size 0 KB 

#####	设置squid内存缓存最大文件,超过4M的文件不保存到内存
maximum_object_size_in_memory 4096 KB  

#####	定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量,此处的100 一定要大于 cache_mem 否则报错。
cache_dir ufs /var/spool/squid 100 16 256  

#####	log文件日志格式
logformat combined %&gt;a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh

#####	log文件存放路径和日志格式
access_log /var/log/squid/access.log combined

#####	设置缓存日志
cache_log /var/log/squid/cache.log

#####	log轮转60天
logfile_rotate 60

#####	cache目录使用量大于95%时,开始清理旧的cache
cache_swap_high 95

#####	cache目录清理到90%时停止
cache_swap_low 90

#####	定义本地网段
acl localnet src 192.168.1.0/24

#####	允许本地网段使用
http_access allow localnet

#####	拒绝所有
http_access deny all

#####	主机名
visible_hostname xxx.xxxx.xxxx

#####	管理员邮箱
cache_mgr 123456@qq.com

正向代理客户端配置

Windows客户端配置代理:

Internet 选项 > 连接 > 局域网设置 ”,在代理服务器区域,按照以下格式设置:
image

Linux客户端:

先创建并修改/etc/profile.d/proxy.sh文件

# 创建proxy.sh文件
touch /etc/profile.d/proxy.sh

编辑proxy.sh文件

# 进入profile.d目录
cd /etc/profile.d/
# 编辑proxy.sh文件
vim proxy.sh

添加下列内容

# squid正向代理只支持http、https、ftp协议,把下面的proxy_server_ip更换为自己搭建的squid服务器IP
export https_proxy=http://proxy_server_ip:3128
export http_proxy=http://proxy_server_ip:3128
export ftp_proxy=http://proxy_server_ip:3128

执行source /etc/profile使其生效

# 执行source /etc/profile
source /etc/profile

配置完成

原文链接:https://www.cnblogs.com/timo521/p/17355085.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS搭建squid正向代理 - Python技术站

(0)
上一篇 2023年4月27日
下一篇 2023年4月27日

相关文章

  • Linux ssh-keygen命令

    Linux ssh-keygen 命令的作用与使用方法 Linux ssh-keygen 命令用于生成、管理和转换认证密钥,是 SSH(Secure Shell)协议中的一部分。使用 ssh-keygen 命令可以生成公钥和私钥,用于 SSH 连接的身份验证和加密通信。 命令语法 ssh-keygen 命令的基本语法如下: ssh-keygen [选项] […

    Linux 2023年5月10日
    00
  • Linux switch_root命令

    Linux switch_root命令 Linux switch_root命令用于切换根文件系统,可以将当前的根文件系统切换为另一个根文件系统。使用switch_root命令可以在不重启系统情况下更改根文件系统,这对系统维护和修复非常有用。 命令语法 switch_root命令的基本语法如下: “switch_root [新根文件系统] [init程序] …

    Linux 2023年5月10日
    00
  • Linux入门之网络系统详解

    Linux入门之网络系统详解 网络系统概述 网络系统是Linux系统的重要组成部分,通过网络系统可以连接互联网并与其他计算机进行通信。常见的网络系统工具包括ping、ifconfig、route、telnet、ssh等。 ping命令 ping命令用于测试与另一台计算机的连接是否通畅,可执行以下命令行进行测试: ping 192.168.0.1 其中192.…

    Linux 2023年5月14日
    00
  • Linux service无法使用系统环境变量问题如何解决

    这篇“Linux service无法使用系统环境变量问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux service无法使用系统环境变量问题如何解决”文章吧。 Linux service无法使用系统环境变量 详细描述 之前在…

    Linux 2023年4月8日
    00
  • 四步解决Linux系统中出现中文乱码问题

    当我们在Linux系统中使用中文时,可能会遇到乱码问题,这是因为Linux系统默认使用UTF-8编码,但是我们常用的软件工具和编辑器可能会使用其他编码格式,例如GBK、GB2312等,导致无法正确显示中文字符。下面是四步解决Linux系统中出现中文乱码问题的完整攻略。 第一步:确认字符编码 解决中文乱码问题的第一步是要确认当前使用的字符编码格式,可以通过使用…

    Linux 2023年5月14日
    00
  • VMware Workstation安装Linux系统

    下面是详细讲解“VMware Workstation安装Linux系统”的完整攻略。 步骤一:下载 VMware Workstation 在官方网站 VMware Workstation 下载 VMware Workstation。 步骤二:安装 VMware Workstation 下载完成后,你可以通过 Windows 的双击运行安装程序的方式安装 VM…

    Linux 2023年5月24日
    00
  • 阿里云云服务器Linux系统更新yum源Shell脚本

    下面是阿里云云服务器Linux系统更新yum源Shell脚本的完整攻略。 步骤一:编写Shell脚本 在Linux系统上,我们可以使用yum命令来安装和更新软件包。yum源是存储软件包的仓库,我们需要定期更新yum源来确保软件更新和安装的正常进行。为了方便,我们可以编写一个简单的Shell脚本来更新yum源: #!/bin/sh # 更新yum源 yum c…

    Linux 2023年5月14日
    00
  • linux系统部署安装过程

    1. 虚拟环境安装   1.新建虚拟机                    2.虚拟机设置   2.系统历程   1.进入系统引导界面进行配置     引导项说明:            1.安装centos 系统                                    正常安装系统            2.测试光盘镜像并安装系统     …

    Linux 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部