虚拟机中Linux环境下使用Squid部署代理缓存服务(及透明传输)
小知识:
正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低原服务器的负载。
不仅如此,还为读者们添加了对指定IP地址、网页关键词、网址与文件后缀的ACL访问限制功能的实验,真的很实用哦~
简单说就是客户端A向代理服务器提出访问Internet的请求,代理服务器接受请求之后先去缓存里看有没有它所需要的,有就给它,没有就代替客户端向Internet上的主机发送请求,同时将资源缓存到本地
还有以个更重要的优点是,可以控制客户端能够访问哪些网页,不能够访问那些网页。
首先我们在虚拟机上通过yum仓库下载安装squid服务
输入命令:yum install squid -y

做代理服务器最好是双网卡,所有我们在我们的虚拟机上再加一块网卡,右键虚拟机选项卡,


两块网卡都设置成桥接模式

回到我们虚拟机我们看一下,发现已经有了两块网卡

设置一下第二块网卡的ip,我们那这个网卡模拟公网的ip,记得重启一下网卡

现在我们可以看到我们虚拟机已经有了两块网卡(在我虚拟机中ens33为内部局域网网关,ens36网卡为外部公网网关)

接下来我们来到第二台虚拟机下载一下httpd服务,之后再重启一下这个服务


我们在这个主页写一点信息 首先进入/var/www/html下
输入命令:echo"wo shi longshisan">index.html

已经可以看到我们写好主页了

我们接下来把第二台虚拟机的ip改成公网ip(记得重启一下网卡)

我们那我们的第一台虚拟机ping一下我们刚才配的第二台虚拟机

打开刚才我们在另外一台计算机上的网页也是可以的(记得在服务器上将防火墙关闭)

我们这个时候打开第三台虚拟机,使第三台虚拟机的ip和我们第一台也就是作为代理服务器的虚拟机中的非公网网段的IP一致

之后我们打开cmd命令行下,ping一下200.200.200.200这个公网IP是否可以ping通(当然啦不在一个网段肯定是ping不通,我们最后要做的是通过服务器转发使他可以ping通)

接下来我们来修改一下squid服务的配置文件,对应位置添加这样一行,把下一行注释掉
输入命令: vi /etc/squid/squid.conf

手动添加信息 (记得保存)

重启一下服务(可以设置开机启动)

接下来我们打开我们win2003虚拟机上的火狐浏览器(没有的话下载一个 ,没有必要必须是win2003虚拟机,win虚拟机都可以)

接下来打开火狐点击右上角,选择选项

进去之后选择高级,点击网络中的设置

我们使用代理模式,输入我们的代理ip(3128端口是我们在服务器上写的想改,可以把前面我们设置的改一下)

这个时候你在输入网址框输入http://200.200.200.200就可以访问我们在·第二台虚拟机上多建立的那个网页啦,即使不在一个网段、

在我们的服务器上我们可以看到谁访问了我们的使用了我们的代理
输入命令:cat /var/log/squid/access.log

透明传输
透明传输的意思就是你不需要在火狐浏览器里选择使用代理模式一样可以访问我们200的那个网页
在上面的基础上我们将火狐浏览器设置成不使用代理

每次实验前我们清空一下缓存,否则可能会影响实验效果

透明正向代理
我们在win2008虚拟机上设置网关为我们的squid服务器

首先打开我们的配置文件(在服务器上)改成这样
输入命令:vi /etc/squid/squid.conf

改完之后我们来重启一下服务

我们再重载一下服务
输入命令:service squid reload

接下来我们修改防火墙重定向策略,来自192.168.22.0的网络重定向到3128端口 一个是80端口的一个是443的
输入命令:iptables -t nat -I PREROUTING -i ens33 -s 192.168.22.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
输入命令:iptables -t nat -I PREROUTING -i ens33 -s 192.168.22.0/24 -p tcp --dport 443 -j REDIRECT --to 3128

之后添加防火墙策略并应用允许3128端口通过 然后重启squid
输入命令:iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

我们可以用检查错误的命令检查一下,检查我们的配置文件有没有错误(我的没有错误)
输入命令:squid -k parse

打开我们的火狐浏览器看看我们的网页吧 输入200.200.200.200

透明反向代理
编辑Squid服务程序的配置文件(正向代理与反向代理不能同时使用,请还原您前面修改过的参数)
输入命令:vi /etc/squid/squid.conf
//第59行,修改格式为:http_port Squid服务器地址:监听端口号 vhost
//第60行,添加格式为:cache_peer 原网站服务器地址 parent 服务器端口号 0 originserver

重启服务就可以了
访问网站 输入192.168.22.100


ACL是Access Control List(访问控制列表)
输入命令:vi /etc/squid/squid.conf 打开配置文件,我们可以看到ACL访问控制列表

Saquid服务的ACL访问控制是非常有用的功能,可以根据特定条件来进行数据缓存或限制用户的访问,ACL元素的定义语法为:
acl aclname acltype string
acl aclname acltype "file"
src定义来源地址(即用户的客户机IP地址):
acl aclname src ip-address/netmask
acl aclname src addr1-addr2/netmask
dst定义目标地址(即用户请求的网站IP地址):
acl aclname dst ip-address/netmask
port用于指定访问端口:
acl aclname port 80 1024
acl aclname port 0-1024
url_regex用于限制网址中的关键词:
acl aclname url_regex [-i] pattern
proto用于定义要代理的协议:
acl aclname proto HTTP FTP
method用于指定请求的方法:
acl aclname method GET POST
访问控制列表由多个规则条目组成的,根据指定的条件来允许或限制访问请求,匹配顺序会由上至下,一旦匹配则立即结束,通常会在控制列表的最下面写上“deny all”或者“allow all”来避免安全隐患。
例子:
仅允许192.168.10.20的主机使用本地Squid服务,拒绝其余主机:
acl client src 192.168.10.20
http_access allow client
http_access deny all
拒绝客户机使用代理服务器访问带有关键词“longshisan”的网站:
acl deny_keyword url_regex -i longshisan
http_access deny deny_keyword
拒绝客户机使用代理服务器访问百度网站:
acl deny_url url_regex http://www.baidu.com
http_access deny deny_url
禁止客户机使用代理服务器下载以mp3与rar为后缀的文件:
acl badfile urlpath_regex -i \.mp3$ \.rar$
http_access deny badfile
虚拟机中Linux环境下使用Squid部署代理缓存服务(及透明传输)的更多相关文章
- Linux基础学习-使用Squid部署代理缓存服务
使用Squid部署代理缓存服务 Squid是Linux系统中最为流行的一款高性能代理服务软件,通常作为Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存.Squid服务配置简单. ...
- 《Linux就该这么学》培训笔记_ch16_使用Squid部署代理缓存服务
<Linux就该这么学>培训笔记_ch16_使用Squid部署代理缓存服务 文章最后会post上书本的笔记照片. 文章主要内容: 代理缓存服务 配置Squid服务程序 正向代理 标准正向代 ...
- 第16章 使用Squid部署代理缓存服务
章节概述: 本章节从代理缓存服务的工作原理开始讲起,让读者能够清晰理解正向代理(普通模式.透明模式)与反向代理的作用. 正确的使用Squid服务程序部署代理缓存服务可以有效提升访问静态资源的效率,降低 ...
- 使用Squid部署代理缓存服务(标准正向、透明正反向代理)
正向代理让用户可以通过Squid服务程序获取网站页面等数据,具体工作形式又分为标准代理模式与透明代理模式.标准正向代理模式: 将网站的数据缓存在服务器本地,提高数据资源被再次访问时的效率,但用户必需在 ...
- 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】
<ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...
- 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】
安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...
- linux环境下的Oracle部署
一. 环境及相关软件 虚拟机:VMwore Workstation Linux系统:CentOS ORACLE:ORACLE_112030_Linux-x86-64 Xmanger软件 二. 安装 ...
- 在Linux环境下使用Apache部署ASP.NET Core
在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Ap ...
- 在Linux环境下使用Jexus部署ASP.NET Core
关于如何在Linux中添加ASP.NET Core运行时环境请参考我的上一篇文章,本文章将不再做赘述. 本文章运行环境如下: (1) 安装独立版Jexus 本教程安装的是独立版的Jexus,独立版的 ...
随机推荐
- js 中的方法注入(aop)
js 中的方法注入 java中很多框架支持 apo 的注入, js中也可以类似的进行实现 主要是通过扩展js中方法的老祖 Function 对象来进行实现. Function.prototype.af ...
- pve 导入 ova
匆忙记录 Proxmox includes qm importdisk as command. Extract your ova: tar -xvf *.ova Create a new VM wit ...
- 我为什么选择Vim
总看到一些飞快敲击键盘而不用鼠标的时候你可以很羡慕和佩服,其实这完全没有必要.就像一个吉他手熟练地弹吉他有必要羡慕吗?一个瓦匠熟练地砌砖有必要羡慕吗?这些都是他们赖以生存的工具而已,熟练地运用工具是理 ...
- 开源GIT仓库-----gogs
简介:Gogs 是一款极易搭建的自助 Git 服务,其目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语 ...
- Nginx+Tomcat多实例及负载均衡配置
Nginx+Tomcat多实例及负载均衡配置 采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡 01 安装nginx服务 安装所需的pcre库 ...
- Linux系统配置静态ip
一.工具/原料 redhat6.2 二.步骤 1."网络适配器"选择"桥接模式" 右键虚拟机,选择"设置"->"网络适配器& ...
- 贝叶斯分类器——递增式学习partial_fit方法
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_39777626/articl ...
- 关于Delphi中二维数组的声明和大小调整
这是一个实例: procedure TMainForm.Button1Click(Sender: TObject);var arr:array of array of string;begin s ...
- JVM 类加载器的双亲委托机制
1.类加载器的层次结构 在双亲委托机制中,各个加载器按照父子关系形成了树形结构(逻辑意义),除了根加载器之外,其余的类加载器都有且只有一个父加载器. public class MyTest13 { p ...
- CMU Database Systems - Timestamp Ordering Concurrency Control
2PL是悲观锁,Pessimistic,这章讲乐观锁,Optimistic,单机的,非分布式的 Timestamp Ordering,以时间为序,这个是非常自然的想法,按每个transaction的时 ...