Squid传统代理与透明代理构建

一、缓存代理概述

1.缓存代理概述

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

2.代理的工作机制

当客户机通过代理来请求Web页面时,指定的代理服务器会检查自己的缓存,如果缓存中已经存在客户机需要访问的页面,则之间将缓存中的页面内容反馈给客户机;若代理服务器中的缓存中没有客户机需要访问的页面,则由代理服务器向Internet发送访问请求,再将获得的页面数据保存到缓存中,并发送给客户机.

二、手工编译安装squid

1.解压缩squid安装文件到/opt

tar zxvf squid-3.5.28.tar.gz -C /opt

2.配置squid的编译选项

cd /opt/squid-3.5.28/
[[email protected] squid-3.5.28]# ./configure --prefix=/usr/local/squid \     //指定安装目录
> --sysconfdir=/etc \     //单独将配置文件修改到其他目录
> --enable-arp-acl \
> --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正则表达式
make && make install

3.将squid程序命令创建软链接到系统命令下

ln -s /usr/local/squid/sbin/* /usr/local/sbin/

4.添加用户

useradd -M -s /sbin/nologin squid

5.更改所属主与所属组

chown -R squid.squid /usr/local/squid/var/

6.编辑squid配置文件,
vim /etc/squid.conf

cache_effective_user squid        #添加   指定程序用户
cache_effective_group squid       #添加   指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid
squid -k parse   //检查配置文件语法

squid -z   //初始化缓存目录

squid    //启动服务

查看服务是否开启

netstat -natp | grep squid
tcp6       0      0 :::3128                 :::*                    LISTEN      84346/(squid-1)

7.创建squid脚本文件,更好的管理squid服务

cd /etc/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" in
   start)
     netstat -natp | grep squid &> /dev/null
     if [ $? -eq 0 ]
     then
       echo "squid is running"
       else
       echo "正在启动 squid..."
       $CMD
     fi
   ;;
   stop)
     $CMD -k kill &> /dev/null
     rm -rf $PID &> /dev/null
   ;;
   status)
     [ -f $PID ] &> /dev/null
        if [ $? -eq 0 ]
          then
            netstat -natp | grep squid
          else
            echo "squid is not running"
        fi
   ;;
   restart)
      $0 stop &> /dev/null
      echo "正在关闭 squid..."
         $0 start &> /dev/null
      echo "正在启动 squid..."
   ;;
   reload)
      $CMD -k reconfigure
   ;;
   check)
      $CMD -k parse
   ;;
   *)
      echo "用法:$0{start|stop|status|reload|check|restart}"
   ;;
esac

chmod +x squid //给脚本添加可执行权限

8.添加为系统服务并设置开机自启动

chkconfig --add squid
chkconfig --level 35 squid on

此时我们可以使用squid脚本来启动、停止、重启和重载suqid服务器了。

三、传统代理构建

传统代理案例环境

角色 ip地址 安装服务
squid服务器 192.168.174.209 suqid服务
httpd服务器 192.168.174.208 httpd服务
win7测试机 192.168.174.129 null

1.squid代理服务器的配置

(1)编辑suqid.conf 配置文件

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

重启squid服务

service squid restart
正在关闭 squid...
正在启动 squid...

(2)添加防火墙策略

[[email protected] init.d]# iptables -F
[[email protected] init.d]# setenforce 0
[[email protected] init.d]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

重载suqid服务

[[email protected] init.d]# service squid reload

2.在http的服务器上安装httpd服务

(1)关闭防火墙

[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# setenforce 0

(2)安装httpd

[[email protected] ~]# yum install httpd -y

(3)开启httpd服务

[[email protected] ~]# systemctl start httpd.service
[[email protected] ~]# netstat -natp | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      7975/httpd

3.win7客户机上进行代理配置

(1)在Ie浏览器中,选择“工具”一>“Internet 选项”,弹出“Internet选项”对话框,
在“连接”选项卡中的“局域网(LAN)设置”选项组中单击“局域网设置”按钮,弹出“局域网(LAN)设置”对话框,
勾选"为LAN使用代理服务器",在地址栏框中输入squid代理服务器的地址,端口为3128

(2)访问httpd服务器的网站

4.查看httpd服务器访问日志的新增记录

cd /etc/httpd/logs
vim access_log

四、构建透明代理

透明代理案例环境 角色 ip地址 安装服务
squid服务器 ens32 192.168.100.1 ens34 12.0.0.1 suqid服务
httpd服务器 12.0.0.10 httpd服务
win7测试机 192.168.100.100 null

1.squid服务器配置
(1)编辑squid.conf配置文件

http_port 192.168.100.1:3128 transparent

重载服务

service squid reload

(2)添加防火墙策略

[[email protected] ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
[[email protected] ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
[[email protected] ~]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT

2.win7测试机浏览器配置

3.查看htpt服务器的日志访问

原文地址:http://blog.51cto.com/13620954/2153547

时间: 2024-11-06 09:48:21

Squid传统代理与透明代理构建的相关文章

构建Squid代理服务器-传统代理、透明代理、反向代理

Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理. 正向代理:根据实现的方式不同,代理服务可分为传统代理和透明代理. 传统代理:普通的代理服务,多见于Internet环境,必须在客户机的浏览器.QQ聊天工具.下载软件等程序中手动设置代理服务器对的地址和端口,才能使用代理服务器来访问网络.对于网页浏览器,访问网站时的域名解析请求会发送给指定的代理服务器. 透明代理:提供与传统代理相

利用Squid构建传统代理及透明代理

关于Squid的简介及安装部署过程可以参考博文:Squid代理服务器安装及部署 传统代理的实现最为简单,透明代理还需要结合默认默认路由.防火墙策略等一起来完成. 构建传统代理 使用传统代理的特点在于:客户机的相关程序(如IE浏览器.QQ聊天软件)必须指定代理服务器的地址.端口等基本信息. 案例环境 案例实施步骤大致分为: 1.Squid服务器的配置: 2.客户机的代理设置: 3.验证代理服务器. 案例实施 关于搭建Web服务器可以参考博文:CentOS 7 利用Apache搭建Web网站服务 如

Squid代理服务器——传统代理,透明代理(实践!)

缓存代理概述 web代理的工作机制: 缓存网页对象,减少重复请求 代理的基本类型 传统代理:适用于Internet,需明确指定服务端 透明代理:客户机不需要指定代理服务器的地址和端口,是通过默认路由,防火墙将web重定向给代理 使用代理的好处 提高web访问速度 隐藏客户机的真实IP地址 一,传统代理 实验环境 squid服务器 192.168.13.179 web服务器 192.168.13.151 client测试机192.168.13.135 1,在squid服务器上安装squid代理服务

squid代理服务器-传统代理,透明代理

缓存代理概述 web代理的工作机制: 缓存网页对象,减少重复请求 代理的基本类型 传统代理:适用于Internet,需明确指定服务端 透明代理:客户机不需要指定代理服务器的地址和端口,是通过默认路由,防火墙将web重定向给代理 使用代理的好处 提高web访问速度 隐藏客户机的真实IP地址 一,传统代理 实验环境 squid服务器 192.168.13.179 web服务器 192.168.13.151 client测试机192.168.13.135 1,在squid服务器上安装squid代理服务

图解正向代理、反向代理、透明代理

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://z00w00.blog.51cto.com/515114/1031287 套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理

图解正向代理、反向代理、透明代理(转)

转自:http://www.cnblogs.com/Anker/p/6056540.html 正向代理:代理服务器代替客户端想服务器发送请求 反向代理:客户直接访问反向代理服务器,反向代理服务器通过反向代理获取服务器内容,然后返回给客户端 透明代理:修改包,中转,透明 套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代

正向代理,反向代理和透明代理的区别

一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端[用户A]和原始服务器(origin server)[服务器B]之间的服务器[代理服务器Z],为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理.如下图1.1 (图1.1) 从上面的概念

图解正向代理、反向代理、透明代理(反向代理可以实现负载均衡)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://z00w00.blog.51cto.com/515114/1031287 套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理

分解正向代理、反向代理、透明代理

套用古龙武侠小说套路来说,代理服务技术是一门很古老的技术,是在互联网早期出现就使用的技术.一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.本文就是针对这三种代理来讲解一些基本原理和具体的适用范围,便于大家更深入理解代理服务技术. 一.正向代理(Forward Proxy) 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forward)是一个位于客户端

[转]图解正向代理、反向代理、透明代理

上面的答案都说的很好,我画了张图能更直观地解释为何反向代理叫“反向“代理<img src="https://pic1.zhimg.com/480c1c45d2565e2f92fd930d25b73a18_b.jpg" data-rawwidth="522" data-rawheight="660" class="origin_image zh-lightbox-thu