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

简介: 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规则的设置,用途并不广泛,不在累述。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
Linux 网络虚拟化 Windows
ccproxy windows上用的代理软件(类似linux系统上的squid)
ccproxy windows上用的代理软件(类似linux系统上的squid)
1675 0
|
缓存 负载均衡 应用服务中间件
在Linux中,Squid、Varinsh和Nginx有什么区别,工作中怎么选择?
在Linux中,Squid、Varinsh和Nginx有什么区别,工作中怎么选择?
|
Linux 数据安全/隐私保护 Python
使用Python实现Linux惠尔顿上网认证客户端
使用Python实现Linux惠尔顿上网认证客户端
1112 0
|
缓存 安全 Ubuntu
Linux配置代理上网
如何配置Linux代理
1588 1
|
Linux 虚拟化
Linux:在VMware中,如果虚拟机之前可以上网,之后突然不能上网,怎么办?
Linux:在VMware中,如果虚拟机之前可以上网,之后突然不能上网,怎么办?
|
缓存 运维 网络协议
Linux巩固篇016-Linux Squid 部署代理缓存服务
纸上得来终觉浅,绝知此事要躬行
1346 0
Linux巩固篇016-Linux Squid 部署代理缓存服务
|
Linux 测试技术 开发工具
VMware Linux虚拟机与WIN7操作系统共享无线网络上网配置
VMware Linux虚拟机与WIN7操作系统共享无线网络上网配置
375 0
|
Linux
linux使用tinyproxy代理上网
linux使用tinyproxy代理上网
2233 1
linux使用tinyproxy代理上网
|
Web App开发 监控 Linux
linux 搭建squid代理服务器
linux 搭建squid代理服务器实验环境: 一台linux搭建Web服务器,充当内网web服务器(同时充当内网客户端) 202.100.10.100 一台linux系统充当网关服务器,两个网卡,开启路由转发 192.168.133.131和202.100.10.1 一台linux搭建Web服务器,充当外网web服务器(同时充当外网客户端)) 192.168.133.131 实验步骤: 1.配置内网web服务器、网关服务器、外网Web服务器的IP地址,开启网关的路由转发,关闭网关的防火墙,测试内网web服务器与外网Web服务器的联通性,保证能互通。
4183 0
|
Linux 开发工具
Linux squid配置
yum -y install squid vi /etc/squid/squid.conf http_port 3128 cache_mem 64 MB maximum_object_size 4 MB cache_dir ufs /var/spool...
1376 1