文章目录

  • 前言
  • 一: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传统代理透明代理相关推荐

  1. 实验操作:Squid代理服务器应用(传统代理透明代理)--------------------------------------就整吧

    Squid代理服务器应用(传统代理&透明代理) 前言 一:squid概述 1.1:squid代理的作用 1.2:缓存代理概述 1.21:Web代理的工作机制 1.3:代理的基本类型 二:案例一 ...

  2. squid+iptables实现透明代理

    NAT 网络地址转换(网络地址映射) 就是把数据包的源IP或者目标IP进行修改. 作用: 修改源IP,叫源地址映射,一般为了实现让私有网络的机器能够访问互联网 修改目标IP,叫目标地址映射,一般为了实 ...

  3. Squid 正反向 / 透明代理

    squid是什么? Squid是一种用来缓冲Internet数据的软件.它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求.也就是说,如果一个人想下载一web页 ...

  4. 正向代理/反向代理/透明代理/透明模式

    1.正向代理(forward)是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转 ...

  5. 缓存加速--Squid代理服务器应用(传统代理、透明代理)

    文章目录 一. Squid 服务基础 1.1 代理的工作机制 1.2 代理的基本类型 二. squid代理服务器(传统模式)搭建 实验目的 实验参数 实验过程 1. 手工编译安装squid 2. 修改 ...

  6. squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理

    缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤. 作为应用层的代理服务器软件,Sqiod主要提 ...

  7. 理论+实验 详解Squid部署--传统代理--透明代理--日志分析--反向代理

    目录 一 缓存代理概述 1.1 Web代理的工作机制 1.2 代理的基本类型 1.3 使用代理的好处 二 Squid安装及运行 2.1 编译安装Squid 3.4.6 2.2 Squid配置文件调整 ...

  8. squid代理-----透明代理模式

    目录 一.squid透明代理 二.实验环境 1.squid服务器添加网卡 2.web服务器指定静态路由 3.开启透明代理 4.设置防火墙规则 5.客户机验证 一.squid透明代理 客户端不需要指定代 ...

  9. squid+iptalbes实现透明代理配置记录

    首先描述下硬件环境cpu P4 2.93\2G\80G 单网卡;系统环境为CentOS 5.4 x86_64,所需的squid由yum安装,squid包的版本为squid-2.6.STABLE21-6 ...

最新文章

  1. 操作分布式文件之六:如何解析远程文件
  2. 《机器学习技法》---模型聚合
  3. CentOS忘记密码
  4. 【开发环境】Windows 系统中使用 Makefile 构建脚本编译 C 程序 ( 下载并安装 TDM-GCC 编译器 | 配置环境变量 | 编译 Makefile 程序 )
  5. 开源项目_可能使用到的开源项目集合
  6. es搜索热度属性_是不是场吊打局?奥迪A6L对比雷克萨斯ES
  7. 木门怎么打_旧木门拆掉改成衣柜门,完工像收破烂的,要不是能省几个钱谁干?...
  8. 22种编程语言新年快乐
  9. NeurIPS2021 VALUE:快来刷榜吧!微软提出视频多模态新基准,同时含检索、caption、QA等多个任务!...
  10. java对象数组排序_java 对象数组排序
  11. hdu1023-----卡特兰数
  12. linux安装Telnet工具
  13. diff制作patch补丁
  14. 学校官网首界面 html
  15. python爬取网易云音乐评论并进行情感分析_使用python3爬取网易云音乐的评论
  16. 灌篮高手总决赛下载地址,都是pdf文件,黑白的,很清晰
  17. Go语言核心之美 3.4-Struct结构体
  18. 用Q-learning算法实现自动走迷宫机器人
  19. React路由管理 —— React Router 总结
  20. 100项世界上鲜为人知的事

热门文章

  1. 如何将markdown文件转成word
  2. python中mod是什么意思_【python中,mod_python到底做了些什么呢?】mod python 教程
  3. 38.DevOps之基于Jenkins实现的CI与CD
  4. 智源社区AI周刊No.97:Bengio新论文用GFlowNets统一生成模型;北大发布AI for EDA数据集...
  5. 马云:阿里巴巴的最高机密是我们的组织架构图
  6. route和bridge是什么意思_请问ROUTE 和 BRIDGE 是怎么分别的!
  7. 那些令人发燥的JAVA虚引用
  8. 城镇污水处理厂工艺概述及提标改造路线
  9. CES 2017 DAY1:自动驾驶延续昨日热潮,其他产品更强调实用
  10. 二、5移动端网页适配