Linux 系统通过 Squid 配置实现代理上网

本文涉及的产品
云服务器ECS,u1 2核4GB 1个月
云服务器 ECS,u1 4核8GB 1个月
云服务器 ECS,u1 4核16GB 1个月
简介: Squid 介绍 Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

Squid 介绍

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。使用云服务器 ECS 时,经常有这样的需求: 购买了多台 ECS 主机,但其中只有一台服务器购买了公网带宽, 而其余 ECS 因为只有偶尔的公网访问需求,所以没有购买公网带宽。可以通过配置 squid 代理,来使没有购买公网的服务器通过已购买公网的服务器访问外网,也可以通过squid作缓存减轻WEB服务器的压力,同时避免暴露WEB服务器真实的IP地址,提高安全性。
  Squid 是一个缓存 Internet 数据的软件,其接收用户的下载申请,并自动处理所下载的数据。当一个用户想要下载一个主页时,可以向 Squid 发出一个申请,要 Squid 代替其进行下载,然后 Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid 把保存的备份立即传给用户。
 按照代理类型的不同,可以将 Squid 代理分为正向代理和反向代理,正向代理中,根据实现方式的不同,又可以分为普通代理和透明代理。

普通代理:需要客户机在浏览器中指定代理服务器的地址、端口。

透明代理:适用于企业的网关主机(共享接入 Internet)中,客户机不需要指定
代理服务器地址、端口等信息,代理服务器需要设置防火墙策略将客户机的 Web 访问数据转交给代理服务程序处理。

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

Squid 配置说明
操作系统:CentOS Linux release 7.3.1611 (Core)
Squid 版本:squid-3.5.20-10.el7.x86_64
具体配置如下:
配置本地yum源,yum安装squid:
image
yum install squid –y

安装完成后开始根据不同的代理需求编辑配置文件。

普通代理:
原理图
image

*图中的IP地址仅为实验

1.启动squid服务
image

systemctl start squid

2.打开客户端浏览器设置代理服务:
image
image

注意:此处代理服务器的IP应该是与客户端和web服务器能够直接通信的IP,测试机的IP不能与WEB服务器直接通信,否则就是去了代理的意义。

3.客户端直接访问WEB服务器,此时可以实现由一台ECS服务器做squid代理,访问后端没有公网出口的WEB集群。
image

反向代理:
用squid做反向代理增加web服务器的安全性,同时squid可以作缓存,减轻真正的web服务器的负担,提高访问速度。
原理图:
image

*图中IP地址仅作参考

  1. 编辑squid的配置文件
    image

vim /etc/squid/squid.conf
image

Squid normally listens to port 3128

http_port 80 vhost vport //指定squid代理服务器的端口为80,vhost和vport指的是采用虚拟主机的方式
cache_dir ufs /var/spool/squid 512 16 256
cache_mem 16 MB
cache_peer 39.108.15.233 parent 80 0 no-query originserver
说明:
cache_dir ufs /var/spool/squid 512 16 256
缓存目录 存储方式 缓存目录 缓存大小为512MB 一级子目录数 二级子目录数
cache_peer 39.108.15.233 parent 80 0 no-query originserver
指定真正的web服务器 类型 http端口 不支持查询邻居的缓存 允许类型weiparent的服务器作为原始服务器被访问
http_access allow all 允许所有的互联网用户访问。

2.重启squid服务
image

systemctl restart squid

注意:反向代理代理服务器需要使用80端口,若服务启动不起来,请查看80端口是否被占用。若占用,关闭掉对应服务,再重新启动squid服务。

3.在客户端直接输入代理服务器的ip,可以访问到真实的WEB服务器。
image

透明代理原理:代理服务器做一个转发器,设置端口转发规则,把访问web服务的请求,转发给web服务器,实现访问客户端对WEB服务器的访问。涉及iptables规则的设置,用途并不广泛,不在累述。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
存储 JSON Linux
|
4天前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
|
4天前
|
JavaScript 前端开发 Linux
【好玩的开源项目】Linux系统之部署捕鱼达人经典小游戏
【7月更文挑战第20天】Linux系统之部署捕鱼达人经典小游戏
17 6
|
6天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署吃豆人经典小游戏
【7月更文挑战第18天】Linux系统之部署吃豆人经典小游戏
32 1
|
8天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署跳一跳经典小游戏
【7月更文挑战第16天】Linux系统之部署跳一跳经典小游戏
30 6
|
9天前
|
Linux 测试技术 网络安全
【好玩的开源项目】Linux系统之部署adarkroom文字风格冒险小游戏
【7月更文挑战第15天】Linux系统之部署adarkroom文字风格冒险小游戏
28 4
|
7天前
|
JavaScript Linux 测试技术
【好玩的开源项目】Linux系统之部署proxx扫清黑洞小游戏
【7月更文挑战第17天】Linux系统之部署proxx扫清黑洞小游戏
19 1
|
10天前
|
存储 固态存储 Linux
systemd-analyze:Linux系统启动性能分析的利器
`systemd-analyze`是Linux下分析systemd启动性能的工具,它提供启动时间统计、服务耗时、依赖关系及图形化展示。通过`blame`查看服务启动时间,`critical-chain`显示关键路径,`plot`生成启动时间线图。使用时注意日志完整性,优化服务顺序,并结合最佳实践提升启动效率。
|
2天前
|
监控 Linux Shell
Linux系统中如何查看磁盘情况
【7月更文挑战第11天】在Linux中,`df -h`展示文件系统磁盘使用概览;`du -sh /path`估计特定目录的磁盘占用;`fdisk -l`列出磁盘分区详情;`lsblk`以树状展示块设备信息。这些命令帮助监控磁盘状态,适时管理空间。
|
2天前
|
安全 Linux 数据安全/隐私保护
入职必会-开发环境搭建33-VMWare虚拟机安装Linux系统
CentOS(Community ENTerprise Operating System)是一个基于Linux的开源操作系统,它是由社区志愿者团队从Red Hat Enterprise Linux(RHEL)源代码重新编译而成。CentOS致力于提供一个稳定、可靠且免费的企业级Linux发行版,适用于服务器和工作站环境。