缓存加速----Squid传统代理透明代理
文章目录
- 前言
- 一:Squid代理服务概述
- 1.1:概述
- 1.2:工作机制
- 1.3:Squid基本类型
- 二:环境
- 三:传统代理试验过程
- 四:透明代理实验过程
前言
一:Squid代理服务概述
1.1:概述
- Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
1.2:工作机制
缓存网页对象,减少重复请求
它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求
也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求
然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。
1.3:Squid基本类型
- 传统代理
- 普通的代理服务,适用于Internet,需明确指定服务端
- 透明代理
- 客户机不需要指定代理服务器的地址和端口,是通过默认路由,防火墙将web重定向给代理
- 使用代理可以提高web的访问速度,同时可以隐藏客户机的真实IP地址,从而起到一定的保护作用
- 另一方面,squid也可以针对要访问的目标、客户机的地址、访问的时间段进行过滤控制。
二:环境
- VMware软件
- 一台centos7虚拟机作为squid服务器,IP地址为:192.168.100.140
- 一台centos7虚拟机作为web服务器,IP地址为:192.168.100.150
- 一台win10虚拟机作为client测试机,IP地址为:192.168.100.10
三:传统代理试验过程
Squid服务器配置
1.解压squid软件包 monut.cifs //192.168.1.150/qq-Download /mnt cd /mnt tar xzvf squid-3.4.6.tar.gz -C /opt 2.安装相关软件包 yum install gcc gcc-c++ make -y 3.配置服务模块,编译安装 cd /opt/suqid-3.4.6/ ./configure \ --prefix=/usr/local/squid \ --sysconfdir=/etc --enable-arp-acl \ --enable-linux-netfilter \ --enable-linux-tproxy \ --enable-async-io=100 \ --enable-err-language="Simplify_Chinese" \ --enable-underscore \ --enable-poll \ --enable-gnuregexmake && make install 4.创建软链接,优化服务控制方式 ln -s /usr/local/squid/sbin/squid /usr/local/sbin/ 5.创建squid用户 useradd -M -s /sbin/nologin squid 6.修改squid中的var的属性 chowm -R squid.squid /usr/local/squid/var/ 7.编辑squid的配置文件 vim /etc/squid.conf55 # And finally deny all other access to this proxy56 http_access allow all57 http_access deny all //允许所有用户访问58 59 # Squid normally listens to port 312860 http_port 3128 61 cache_mem 64 MB //指定缓存功能所使用的内存空间大小62 reply_body_max_size 10 MB //允许用户下载的最大文件大小63 maximum_object_size 4096 KB //允许保存到缓存空间的最大对象大小64 cache_effective_user squid //添加指定程序用户65 cache_effective_group squid //添加指定账户基本组66 67 # Uncomment and adjust the following to add a disk cache directory.68 #cache_dir ufs /usr/local/squid/var/cache/squid 100 16 2568.编辑防火墙规则 iptables -F //清除所有规则 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT //允许目标端口3128做转发9.检查语法并且开启服务 squid -k parse //检查配置文件语法 squid -z //初始化缓存目录 squid //启动服务 [root@squid ~]# netstat -natp | grep squid tcp6 0 0 :::3128 :::* LISTEN 36414/(squid-1) [root@squid ~]# 10.编辑脚本,优化服务控制方式(service 工具) vim /etc/init.d/squid #!/bin/bash #chkconfig: 2345 90 25 PID="/usr/local/squid/var/run/squid.pid" CONF="/etc/squid.conf" CMD="/usr/local/squid/sbin/squid"case "$1" in start)netstat -natp | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "squid is running"elseecho "正在启动 squid...."echo "成功启动"$CMDfi;; stop)$CMD -k kill &> /dev/nullrm -rf $PID &> /dev/null;; status)[ -f $PID ] &> /dev/nullif [ $? -eq 0 ]thennetstat -natp | grep squidelseecho "squid is not running"fi;; restart)$0 stop &> /dev/nullecho "正在关闭 squid..."echo "关闭成功"$0 start &> /dev/nullecho "正在启动 squid..."echo "启动成功";; reload)$CMD -k reconfigure;; check)$CMD -k parse;;*)echo "用法:$0{start|stop|status|reload|check|restart}";; esacchmod +x /etc/init.d/squid //添加服务执行权限 chkconfig --add squid //添加到service的服务列表 chkconfig --level 35 squid on //开机自启 [root@localhost ~]# service squid restart 正在关闭 squid... 关闭成功 正在启动 squid... 启动成功 [root@localhost ~]#
Web服务器配置
[root@apache ~]# yum install httpd -y [root@apache ~]# systemctl stop firewalld.service [root@apache ~]# setenforce 0 [root@apache ~]# systemctl start httpd.service [root@apache ~]# netstat -natp | grep 80
客户机Win10的配置
配置地址192.168.100.10 网关192.168.100.2
浏览器访问Web服务器测试
这里看不出来,到底是代理访问的Apache还是客户端访问的,我们要看Apache的日志
[root@apache ~]# cat /var/log/httpd/access_log
日志显示是代理来访问的Web服务器
那么问题来了,客户机要选择代理,若是客户不会操作的,由此,产生Squid透明模式,下文介绍如何搭建
四:透明代理实验过程
网络拓扑图
实验环境
类别 IP地址 系统 软件包 squid服务器 ens33:192.168.100.140/24;ens36:192.168.10.1/24 centos7 squid-3.4.6.tar.gz web服务器 192.168.100.150 centos7 客户机 192.168.10.10 win10 配置squid服务器
1.配置网卡 ens33为NAT模式 ens36为仅主机模式 cd /etc/sysconfig/network-scripts/ cp -p ifcfg-ens33 ifcfg-ens36 vim ifcfg-ens36 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="none" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens36" DEVICE="ens36" ONBOOT="yes" IPADDR="192.168.10.1" '这个地址是客户机的网关' PREFIX="24" IPV6_PRIVACY="no" ~ service network restart [root@squid network-scripts]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.100.140 netmask 255.255.255.0 broadcast 192.168.100.255inet6 fe80::7264:7578:de4e:190 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:17:9c:75 txqueuelen 1000 (Ethernet)RX packets 96630 bytes 110402508 (105.2 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 94922 bytes 172796714 (164.7 MiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255 ......[root@squid ~]# 2.配置路由转发功能 vim /etc/sysctl.conf net.ipv4.ip_forward=1 sysctl -p '使其生效'3.配置squid文件 vim /etc/squid.conf59 # Squid normally listens to port 312860 http_port 192.168.10.1:3128 transparent 配置网卡网关地址及端口service squid restart 4.添加防火墙规则 iptables -F //清空规则 iptables -t nat -F iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 iptables -t nat -I PREROUTING -i ens36 -s 192.168.10.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
配置web服务器
yum install httpd -y route add -net 192.168.10.0/24 gw 192.168.100.140 //添加静态路由 下一跳 systemctl stop firewalld.service setenforce 0
配置客户端,虚拟机处于仅主机模式
验证服务配置
查看Web服务日志
注意: 在web服务器中,添加到路由表的静态路由有时间限制
缓存加速----Squid传统代理透明代理相关推荐
- 实验操作:Squid代理服务器应用(传统代理透明代理)--------------------------------------就整吧
Squid代理服务器应用(传统代理&透明代理) 前言 一:squid概述 1.1:squid代理的作用 1.2:缓存代理概述 1.21:Web代理的工作机制 1.3:代理的基本类型 二:案例一 ...
- squid+iptables实现透明代理
NAT 网络地址转换(网络地址映射) 就是把数据包的源IP或者目标IP进行修改. 作用: 修改源IP,叫源地址映射,一般为了实现让私有网络的机器能够访问互联网 修改目标IP,叫目标地址映射,一般为了实 ...
- Squid 正反向 / 透明代理
squid是什么? Squid是一种用来缓冲Internet数据的软件.它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求.也就是说,如果一个人想下载一web页 ...
- 正向代理/反向代理/透明代理/透明模式
1.正向代理(forward)是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转 ...
- 缓存加速--Squid代理服务器应用(传统代理、透明代理)
文章目录 一. Squid 服务基础 1.1 代理的工作机制 1.2 代理的基本类型 二. squid代理服务器(传统模式)搭建 实验目的 实验参数 实验过程 1. 手工编译安装squid 2. 修改 ...
- squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理
缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤. 作为应用层的代理服务器软件,Sqiod主要提 ...
- 理论+实验 详解Squid部署--传统代理--透明代理--日志分析--反向代理
目录 一 缓存代理概述 1.1 Web代理的工作机制 1.2 代理的基本类型 1.3 使用代理的好处 二 Squid安装及运行 2.1 编译安装Squid 3.4.6 2.2 Squid配置文件调整 ...
- squid代理-----透明代理模式
目录 一.squid透明代理 二.实验环境 1.squid服务器添加网卡 2.web服务器指定静态路由 3.开启透明代理 4.设置防火墙规则 5.客户机验证 一.squid透明代理 客户端不需要指定代 ...
- squid+iptalbes实现透明代理配置记录
首先描述下硬件环境cpu P4 2.93\2G\80G 单网卡;系统环境为CentOS 5.4 x86_64,所需的squid由yum安装,squid包的版本为squid-2.6.STABLE21-6 ...
最新文章
- 操作分布式文件之六:如何解析远程文件
- 《机器学习技法》---模型聚合
- CentOS忘记密码
- 【开发环境】Windows 系统中使用 Makefile 构建脚本编译 C 程序 ( 下载并安装 TDM-GCC 编译器 | 配置环境变量 | 编译 Makefile 程序 )
- 开源项目_可能使用到的开源项目集合
- es搜索热度属性_是不是场吊打局?奥迪A6L对比雷克萨斯ES
- 木门怎么打_旧木门拆掉改成衣柜门,完工像收破烂的,要不是能省几个钱谁干?...
- 22种编程语言新年快乐
- NeurIPS2021 VALUE:快来刷榜吧!微软提出视频多模态新基准,同时含检索、caption、QA等多个任务!...
- java对象数组排序_java 对象数组排序
- hdu1023-----卡特兰数
- linux安装Telnet工具
- diff制作patch补丁
- 学校官网首界面 html
- python爬取网易云音乐评论并进行情感分析_使用python3爬取网易云音乐的评论
- 灌篮高手总决赛下载地址,都是pdf文件,黑白的,很清晰
- Go语言核心之美 3.4-Struct结构体
- 用Q-learning算法实现自动走迷宫机器人
- React路由管理 —— React Router 总结
- 100项世界上鲜为人知的事
热门文章
- 如何将markdown文件转成word
- python中mod是什么意思_【python中,mod_python到底做了些什么呢?】mod python 教程
- 38.DevOps之基于Jenkins实现的CI与CD
- 智源社区AI周刊No.97:Bengio新论文用GFlowNets统一生成模型;北大发布AI for EDA数据集...
- 马云:阿里巴巴的最高机密是我们的组织架构图
- route和bridge是什么意思_请问ROUTE 和 BRIDGE 是怎么分别的!
- 那些令人发燥的JAVA虚引用
- 城镇污水处理厂工艺概述及提标改造路线
- CES 2017 DAY1:自动驾驶延续昨日热潮,其他产品更强调实用
- 二、5移动端网页适配