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

文章目录

[隐藏]

  • 一、缓存代理概述
  • 二、手工编译安装squid
  • 三、传统代理构建
    • 1.squid代理服务器的配置
    • 2.在http的服务器上安装httpd服务
    • 3.win7客户机上进行代理配置
  • 四、构建透明代理
一、缓存代理概述

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  P  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服务器了。

三、传统代理构建

传统代理案例环境

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  

四、构建透明代理

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  [root@localhost ~]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT  

2.win7测试机浏览器配置

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

原文出处:51cto -> http://blog.51cto.com/13620954/2153547?source=dra

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。