1、缓存代理概述:

作为应用层的代理服务软件,Squid主要提供缓存加速和应用层过滤控制的功能

2、代理的工作机制:

(1)当客户机通过代理来请求web页面时,指定的代理服务器会先检查自己的缓存,若缓存中已有需访问页面,则直接将缓存中的页面内容反馈给客户机

(2)若缓存中没有所需页面,则代理服务器向Internet发送访问请求,当获得返回的web页面后,将网页数据保存到缓存中并发送给客户机

3、代理的基本类型:

(1)传统代理:需手动设置代理服务器的地址和端口,多见于Internet环境(2)透明代理:不需要手动指定代理服务器的地址和端口,多见于局域网环境注:代理服务器一定有预备的缓存空间,用于存储服务器反馈的数据

一、Squid代理服务器的安装及运行控制

(1)挂载并解压squid软件包
[root@localhost ~]# mount.cifs //192.168.100.1/zdh /abc
Password for root@//192.168.100.1/zdh:
[root@localhost ~]# cd /abc
[root@localhost abc]# ls
squid-3.5.28.tar.gz
[root@localhost abc]# tar zxvf squid-3.5.28.tar.gz -C /opt
(2)到squid文件路径下执行配置文件
[root@localhost abc]# cd /opt
[root@localhost opt]# ls
rh  squid-3.5.28
[root@localhost opt]# cd squid-3.5.28/
[root@localhost squid-3.5.28]# ls
acinclude     configure     doc      lib          README             tools
aclocal.m4    configure.ac  errors   libltdl      RELEASENOTES.html
bootstrap.sh  contrib       helpers  Makefile.am  scripts
cfgaux        CONTRIBUTORS  icons    Makefile.in  SPONSORS
ChangeLog     COPYING       include  po4a.conf    src
compat        CREDITS       INSTALL  QUICKSTART   test-suite
(3)配置文件项
[root@localhost squid-3.5.28]# ./configure >--prefix=/usr/local/squid \     安装目录
> --sysconfdir=/etc \            单独将配置文件修改到其它目录
> --enable-arp-acl \             用mac地址进行管理,防止ip欺骗
> --enable-linux-netfilter \     使用内核过滤
> --enable-linux-tproxy \        支持透明模式
> --enable-async-io=100 \        异步I/O,提升储存性能
> --enable-err-language="Simplify_Chinese" \ 错误信息的显示语言
> --enable-underscore \          允许URL中有下划线
> --enable-poll \                使用poll()模式,提升性能
> --enable-gnuregex              使用GUN正则表达式
[root@localhost squid-3.5.28]# systemctl stop firewalld.service
[root@localhost squid-3.5.28]# setenforce 0
[root@localhost squid-3.5.28]# yum install gcc gcc-c++ make -y               安装编译软件包
[root@localhost squid-3.5.28]#make && make install
(4)创建用户并赋予权限
[root@localhost squid-3.5.28]#ln -s /usr/local/squid/sbin/* /usr/local/sbin/  建立软连接
[root@localhost squid-3.5.28]#useradd -M -s /sbin/nologin squid  创建用户,不创建用户家目录,不使用本地环境登录
[root@localhost squid-3.5.28]#chown -R squid.squid /usr/local/squid/var/  赋予属主属组权限
(5)修改squid的配置文件
[root@localhost squid-3.5.28]#vim /etc/squid.conf
cache_effective_user squid        #添加   指定程序用户
cache_effective_group squid       #添加   指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid  //在此行上面你添加以上两条语句
(6)Squid的运行控制
[root@localhost squid-3.5.28]#squid -k parse   //检查配置文件语法[root@localhost squid-3.5.28]# squid -z   //初始化缓存目录[root@localhost squid-3.5.28]# squid    //启动服务
(7)使用Squid脚本服务
[root@localhost squid-3.5.28]#cd /etc/init.d
[root@localhost init.d]# vim 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" instart)netstat -natp | grep squid &> /dev/nullif [ $? -eq 0 ]thenecho "squid is running"elseecho "正在启动 squid..."$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..."$0 start &> /dev/nullecho "正在启动 squid...";;reload)$CMD -k reconfigure;;check)$CMD -k parse;;*)echo "用法:$0{start|stop|status|reload|check|restart}";;
esac[root@localhost init.d]#chmod +x squid  赋予执行权限
[root@localhost init.d]# chkconfig --add squid
[root@localhost init.d]# chkconfig --level 35 squid on                            添加开机自启

这样一来我们就可以通过Squid脚本来启动、停止、重载Squid服务器了,在执行时天机相应的start、stop、reload、restart参数。

二、构建代理服务器

接下来我从两个方面来讲解Squid的配置和使用,分别是传统代理,透明代理。

1、传统代理:

准备条件:一台squid服务器:192.168.100.129一台web服务器:192.168.100.130一台windows客户机:192.168.100.133
(1)squid代理服务器的配置

1、修改squid.conf的配置文件

[root@localhost ~]# vim /etc/squid.conf
cache_mem 64 MB                   #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB         #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制
maximum_object_size 4096 KB       #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户

2、在防火墙添加允许策略,这里不要关闭防火墙

[root@localhost ~]# iptables -F   清空防火墙列表
[root@localhost ~]# setenforce 0   关闭网络增强性安全功能
[root@localhost ~]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

3、重载squid服务,使配置文件生效

[root@localhost ~]# service squid reload
(2)web服务器的代理配置
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# netstat -antp |grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      87297/httpd

开启后客户机就可以访问了,但注意,在这里客户机并不是通过代理服务器访问,而是直接访问的web网站,请看!

[root@localhost squid-3.5.28]# cd /etc/httpd/
[root@localhost httpd]# cd logs/
[root@localhost logs]# vim access_log
192.168.100.133 - - [23/Jul/2018:14:33:45 +0800] "GET /noindex/css/fonts/Light/OpenSans-Light.eot? HTTP/1.1" 404 240 "http://192.168.100.130/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"
"access_log" 30L, 9002C

可以看出是客户机直接访问的web服务器,并没有通过代理服务器,下面我们通过代理服务器登录

(3)客户机的代理配置
在IE浏览器中--选择‘工具’--‘intnet选项’--‘intnet选项对话框’--‘连接’--‘局域网(lan)设置’--单击‘局域网设置’按钮--弹出‘局域网设置’对话框


下面我们清空浏览器记录,重新访问几次,在web服务器查看访问日志

2、透明代理

透明代理提供的服务功能和传统代理是一致的,但其透明的实现是依赖于默认路由和防护墙的重定向策略。因此,更适用于局域网主机服务,而不适合为Internet中的客户机提供服务

准备条件:一台squid代理服务器,配置双网卡:内网ens33 192.168.100.1 外网:ens36 12.0.0.1一台web服务器:12.0.0.12一台windows客户机:192.168.100.133


作为别人的网关需要帮别人转发数据包

[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward

重启虚拟机后需要重新执行防火墙策略

[root@localhost ~]#iptables -F
[root@localhost ~]#iptables -t nat -F
[root@localhost ~]#setenforce 0
(1)配置squid支持透明代理
[root@localhost ~]# vim /etc/squid.conf
http_port 192.168.100.1:3128 transparent
[root@localhost ~]#service squid reload

(2)设置iptables的重定向策略

[root@localhost ~]#iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128           (redirect 重定向)
[root@localhost ~]#iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128   (443 安全性的超文本传输协议)
[root@localhost ~]#iptables -I INPUT -p tcp --dport 3218 -j ACCEPT最后再次访问12.0.0.12即可发现是通过网关12.0.0.1访问,这里不再展示。

转载于:https://blog.51cto.com/13687553/2149123

如何使用Squid服务来构建=》传统和透明代理服务器,通俗易懂!相关推荐

  1. Centos 7安装Squid代理服务及构建传统代理

    博文大纲 一.Squid服务概述 二.安装及运行控制 一.Squid服务概述 作为应用层的代理服务软件,Squid主要提供缓存加速.应用层过滤控制的功能. 1.代理的工作机制 当客户机通过代理来请求W ...

  2. 部署Squid 代理服务器(内含传统、透明代理服务器的配置、ACL访问控制、日志分析、反向代理)

    标题 一.Squid 代理服务器 代理的工作机制 Squid 代理的类型 二.安装 Squid 服务 1.编译安装 Squid 2.修改 Squid 的配置文件 3.Squid 的运行控制 4.创建 ...

  3. Linux squid构建-传统模式和透明模式部署

    一.传统模式 首先准备两台虚拟机,其中squid的虚拟机要有两张网卡,自己的pc当做客户端,另一台为HTTP服务器.内网为10.10.10.0网段,外网为20.20.20.0网段,并且虚拟机的虚拟网络 ...

  4. Squid 服务概述

    cpu密集型服务:工作时对cpu的需求较大,例如MySQL.Apache.Nginx等. 1.Squid概述 Squid是一个高性能的代理缓存服务器,Squid支持FTP.gopher.HTTPS和H ...

  5. Squid服务在实际工作中的应用、优化和流量监控

    一.squid的推荐学习及基础配置 1.Squid学习指南(彭勇华) http://blog.s135.com/book/squid/ 二,Squid2.6基础配置重要语法详解(抚琴煮酒) http: ...

  6. 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式

    文章目录 1-什么是Iaas,Paas和Saas 一 IaaS基础设施服务 二 paas平台即服务 三saas软件即服务 四 总结 2-单体应用和缺点 一 单体应用 二 单体应用的缺陷 3-微服务概念 ...

  7. NAT转换技术(SNAT、MASQUERADE、DNAT策略)及代理服务(squid服务)

    NAT地址转换技术 一.NAT网络拓扑图 二.实验环境 本次实验均是在 RHEL6.5 虚拟机上进行的. WEB-内网(Client)IP地址:192.168.10.150 (VMnet1) 网关   ...

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

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

  9. 使用华为云服务一键构建部署发布前端和Node.js服务

    如何使用华为云服务一键构建部署发布前端和Node.js服务 构建部署,一直是一个很繁琐的过程 作为开发,最害怕遇到版本发布,特别是前.后端一起上线发布,项目又特别多的时候 例如你有10个项目,前后端都 ...

最新文章

  1. win10下编译和使用mnn 2021
  2. SQL Server2008(一)简介
  3. DataBind 踩坑事件
  4. c++求矩阵的秩_一篇文章搞定矩阵相关概念及意义通俗解释汇总
  5. WPF界面UI设计开发心得
  6. db2 springboot 整合_[SpringBoot]快速配置多数据源(整合MyBatis)
  7. 使用 Chrome Timeline 来优化页面性能
  8. coddenomicon工具
  9. HYSBZ1061题解
  10. mysql+web日志分析工具_用Python+MySQL实现2017年web日志分析报告
  11. JavaScript控制文字方向
  12. 数学女孩儿中的数列问题
  13. CentOS下转换网易云音乐ncm格式为mp3
  14. android设置屏幕高度和宽度设置,android获取屏幕高度和宽度的实现方法
  15. 汇报措辞:你懂得如何向领导汇报吗(审阅、审批、审阅、批示、查阅)?
  16. 计算机系的学生的未来计划,学生未来计划.doc
  17. 冬瓜哥详解存储OS变迁
  18. Karto Slam 参数配置
  19. Macbook如何打开Chrome调试工具Developer Tools
  20. 心流:提升幸福的奥秘

热门文章

  1. 数据结构无头结点单向不循环链表(C语言版)
  2. ubuntu - 安装hive
  3. Redis学习日记-05:SORT命令
  4. Mysql多表查询(两张独立表,一张关系表)
  5. HDU1429胜利大逃亡(续)HDU 1885 Key Task BFS+状态压缩+水
  6. SpringBoot生成日志文件---logback和log4j
  7. jmeter中timeout值怎么设置_jMeter解决failed to respond Connection reset
  8. HashSet和LinkedHashSet使用
  9. idea @Autowired 注入爆红(无法注入)
  10. java多线程售票例子