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

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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/598750

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。